Перейти к содержимому

Memory Manager এবং Windows সিস্টেম cache: paging, page combining এবং lazy write

На этой странице

এই সিরিজে পেজিং, একই ধরনের পেজ একত্রীকরণ, কার্নেল হিপ এবং ফাইল ক্যাশের সাতটি প্যারামিটার যাচাই করা হয়েছে। Windows 11 25H2-এ এগুলোর প্রতিটির পড়ার কোড পাওয়া গেছে। ব্যবহারিক উপযোগিতা প্যারামিটার এবং কাজের অবস্থার উপর নির্ভর করে।

DisablePageCombining পটভূমিতে পেজ একত্রীকরণ বন্ধ করে: মেমরি ম্যানেজার আর এই কাজ করে না, কিন্তু RAM ব্যবহার বাড়তে পারে। DisablePagingExecutive ড্রাইভারগুলোর আনলোডযোগ্য কোড ফিজিক্যাল মেমরিতে ধরে রাখে; উপযোগিতা সাধারণত কম। বাকি প্যারামিটারগুলো শুধু কার্নেল বা স্টোরেজের নির্দিষ্ট কিছু কাজে প্রযোজ্য, অথবা 25H2-এ ইতিমধ্যেই উপযুক্ত ডিফল্ট মান রয়েছে।

প্রতিটি মানের জন্য যাচাই করা হয়েছে:

  1. রেজিস্ট্রিতে সঠিক পাথ এবং টাইপ;
  2. Windows 11 25H2 কোডে নির্ধারিত ডিফল্ট মান;
  3. একই সাবসিস্টেমের সংশ্লিষ্ট মান;
  4. সিস্টেম কোডে পড়ার স্থান এবং তা কার্যকর হওয়ার সময়;
  5. পরিসরের সীমাবদ্ধতা, মান রূপান্তর এবং পরিমাপের একক;
  6. সরাসরি প্রভাব এবং প্রযোজ্যতার সীমা।

পড়ার কোড ছাড়াও আমরা যাচাই করেছি প্যারামিটারটি কোথায় ব্যবহৃত হয়, এর পরিবর্তনের কী পরিণতি এবং কোন পরিস্থিতিতে তা উপকারী হতে পারে। সুপারিশের জন্য শুধু প্যারামিটারের উপস্থিতি যথেষ্ট নয়।

  • Windows 11 25H2 x64, build 26200.9168।
  • কার্নেল প্যারামিটারগুলো ntoskrnl.exe-এর মূল কনফিগারেশন টেবিল এবং Memory Manager ও Cache Manager-এ তাদের প্রয়োগের কোডের সাথে মিলিয়ে দেখা হয়েছে।
  • চলাকালীন অ্যাক্সেসগুলো সিস্টেম রেজিস্ট্রি ট্রেসিং দিয়ে যাচাই করা হয়েছে। ফেজ 0 এবং ফেজ 1-এর শুরুতে করা পড়াগুলো সাধারণ বুট ট্রেসে নাও থাকতে পারে: ট্রেসিং ড্রাইভার পরে লেখা শুরু করে।
  • ব্যবহারকারী প্রসেসের জন্য আলাদাভাবে ntdll.dll-এ মান পড়া যাচাই করা হয়েছে। HeapDeCommitFreeBlockThreshold-এর জন্য 25H2-এ কার্নেলে পড়া পাওয়া গেছে, কিন্তু ব্যবহারকারী প্রসেসের হিপ এই প্যারামিটার ব্যবহার করে না।
  • সিস্টেম কম্পোনেন্টের স্ট্যাটিক বিশ্লেষণ কোনো ফিজিক্যাল পিসি, অন্য build বা অন্য ধরনের স্টোরেজ ডিভাইসে পুনরাবৃত্তির বিকল্প নয়।
Registry path Value Type Default Windows 11 25H2 প্রয়োগ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management DisablePagingExecutive REG_DWORD 0 সিস্টেম ড্রাইভারের pageable কোড পেজিং
тот же путь DisablePageCombining REG_DWORD 0 একই ধরনের ফিজিক্যাল পেজের পটভূমিতে একত্রীকরণ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager HeapDeCommitFreeBlockThreshold REG_DWORD 0x1000 (4 KB) for kernel heap kernel-mode heap-এর মুক্ত ব্লকের decommit থ্রেশহোল্ড
тот же путь ModifiedWriteMaximum REG_DWORD 1 единица = 1 MB clamp-এর পর modified page writer-এর ঊর্ধ্বসীমা
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management EnableAsyncLazywrite REG_DWORD 2 Cache Manager-এর অ্যাসিঙ্ক্রোনাস মোড
тот же путь CacheUnmapBehindLengthInMB REG_DWORD 8 MB অনুক্রমিক পড়ার পিছনে unmap-এর উইন্ডো
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel SplitLargeCaches REG_DWORD 0 processor group-গুলোর মধ্যে cache topology উপস্থাপন

0 অবস্থায় Windows মেমরি ম্যানেজার সিস্টেম কোড এবং ড্রাইভারগুলোর যে সেকশনগুলো এটা সমর্থন করে সেগুলো ব্যাকিং স্টোরেজে আনলোড করতে পারে। 1 অবস্থায় সিস্টেম ড্রাইভারগুলোর আনলোডযোগ্য কোড ফিজিক্যাল মেমরিতে ধরে রাখা হয়।

পড়ার কোড ntoskrnl.exe-এ কার্নেল ইনিশিয়ালাইজেশনের প্রাথমিক পর্যায়ে পাওয়া গেছে। মানটি MmResetDriverPaging, MmPageEntireDriver এবং সিস্টেম ইমেজ লোড করার সময় ব্যবহৃত হয়। এটি সাধারণ ব্যবহারকারী রেজিস্ট্রি ট্রেসিং শুরুর আগেই প্রয়োগ হয়। নতুন অবস্থা প্রয়োগ করতে পুনরায় চালু করা প্রয়োজন।

  • 0: Windows-এর স্বাভাবিক অবস্থা, পেজিং অনুমোদিত।
  • 1: সিস্টেম ড্রাইভারগুলোর আনলোডযোগ্য সেকশন RAM-এ ধরে রাখা হয়।
  • এই সেটিং RAM খরচ করে সিস্টেম কোড পরবর্তীতে আবার মেমরিতে লোড করা কমাতে; ডিস্ক নিজে দ্রুত হয় না।

সেটিংটি এই ড্রাইভার সেকশনগুলোর পরবর্তী আনলোড এবং লোড প্রতিরোধ করে। এটি আলাদা কোনো স্থায়ী CPU যাচাই থ্রেড বন্ধ করে না। পর্যাপ্ত RAM-সহ আধুনিক সিস্টেমে উপযোগিতা সাধারণত খুবই কম: সেটিং ছাড়াও কোড দীর্ঘ সময় মেমরিতে থাকতে পারে। RAM-এর ঘাটতি হলে জোর করে ধরে রাখা মেমরির ঘাটতি আরও বাড়ায়।

প্যারামিটার পড়া এবং সিস্টেম প্রভাবের দিক ntoskrnl.exe কোডে নিশ্চিত করা হয়েছে।

0 অবস্থায় মেমরি ম্যানেজার একটি পটভূমি কাজ চালু করে যা একই ধরনের ফিজিক্যাল পেজ খুঁজে একত্র করে। 1 অবস্থায় এই কাজটি একত্রীকরণ করে না।

ntoskrnl.exe-এ MmCb পুল-ট্যাগসহ পটভূমিতে পেজ একত্রীকরণের কোড পাওয়া গেছে, যা এই ব্যবস্থার উপস্থিতি নিশ্চিত করে।

  • 0: পেজ একত্রীকরণ অনুমোদিত, Windows-এর স্বাভাবিক অবস্থা।
  • 1: একত্রীকরণ বন্ধ।
  • বন্ধ করলে মেমরি ম্যানেজারের পটভূমি কাজ কমে, কিন্তু RAM ব্যবহার বাড়তে পারে।

পেজ একত্রীকরণ লক্ষণীয় পটভূমি লোড তৈরি করলে এবং সিস্টেমে মুক্ত RAM থাকলে বন্ধ করা উপকারী। সাধারণত এই কাজটি খুব কম সক্রিয় থাকে, তাই প্রভাব খুবই কম। সীমিত মেমরির ক্ষেত্রে একত্রীকরণ থেকে সাশ্রয় হওয়া RAM বাঁচানো প্রসেসর সময়ের চেয়ে বেশি উপকারী।

পড়ার কোড এবং পটভূমি কাজ ntoskrnl.exe-এ নিশ্চিত করা হয়েছে। Microsoft পেজ একত্রীকরণ এবং প্রসেসরের কাজ বনাম RAM সাশ্রয়ের মধ্যে সমঝোতার কথা বর্ণনা করে।

মানটি কার্নেল হিপের একটি মুক্ত ব্লকের জন্য বরাদ্দকৃত মেমরি মুক্ত করার (decommit) থ্রেশহোল্ড নির্ধারণ করে। থ্রেশহোল্ড বড় হলে বড় মুক্ত ব্লকের জন্য এই কাজগুলো কম ঘন ঘন ঘটে।

Windows 11 25H2-এ পড়ার কোড ntoskrnl.exe-এ রয়েছে, আর প্যারামিটারের প্রয়োগ কার্নেল ফাংশন RtlCreateHeap-এর সাথে সম্পর্কিত। ntdll.dll-এ সাধারণ প্রসেসের হিপের জন্য সংশ্লিষ্ট পড়ার কোড পাওয়া যায়নি।

  • কার্নেল হিপের কোডে ডিফল্ট মান: 0x1000 (4 KB)।
  • 0x40000 (256 KB) কার্নেল হিপের জন্য একটি গ্রহণযোগ্য থ্রেশহোল্ড।
  • Microsoft-এর ঐতিহাসিক নথিতে পুরোনো Windows সংস্করণের একই নামের user-mode পরিস্থিতি বর্ণনা করা হয়েছে, তাই তা স্বয়ংক্রিয়ভাবে Windows 11 25H2-এ প্রয়োগ করা যায় না।

সাধারণ অ্যাপ্লিকেশনের জন্য প্রায় কোনো উপযোগিতা নেই: তাদের হিপ এই মান ব্যবহার করে না। প্যারামিটার শুধু কার্নেল হিপে মেমরি মুক্ত করার হার পরিবর্তন করতে পারে। পরিমাপ করা সমস্যা ঠিক সেখানেই না থাকলে প্রত্যাশিত প্রভাব খুবই কম।

কার্নেল মোডে পড়া ntoskrnl.exe-এ নিশ্চিত করা হয়েছে। 25H2-এ ব্যবহারকারী প্রসেসের জন্য প্রভাব নিশ্চিত করা হয়নি।

প্যারামিটারটি পরিবর্তিত পেজ লেখার ব্যবস্থার (modified page writer) জন্য ঊর্ধ্বসীমা নির্ধারণ করে। কোডে 256 পেজের একক ব্যবহৃত হয়, অর্থাৎ এক একক সমান 1 MB।

Windows 11 25H2-এ নরমালাইজেশন:

  • 0 রূপান্তরিত হয় 1 এককে, অর্থাৎ 1 MB;
  • 0x40-এর চেয়ে বড় মান 0x40 দ্বারা সীমাবদ্ধ করা হয়;
  • সর্বোচ্চ কার্যকর সীমা 64 MB, বা 16 384 পেজ।

নির্ধারিত লিমিটের প্রায় এক-চতুর্থাংশে পৌঁছালে এই ব্যবস্থা সক্রিয় লেখা শুরু করে। লিমিট বাড়ালে লেখা শুরুর সময় এবং জমা হওয়া পরিবর্তিত পেজের পরিমাণ বদলায়। এতে ডিস্কের নিজের গতি বাড়ে না।

লিমিট বড় হলে সক্রিয় লেখা শুরুর আগে বেশি পরিবর্তিত পেজ জমা হয়। লেখা কম ঘন ঘন শুরু হতে পারে, কিন্তু এখনো সংরক্ষণ না হওয়া ডেটার পরিমাণ এবং পরবর্তী লেখার অংশের আকার বাড়ে। লেখার সাথে নির্দিষ্ট কোনো সমস্যা না থাকলে ডিফল্ট মান রেখে দিন। কার্যকর সীমা 64 MB-তে সীমাবদ্ধ।

পড়ার কোড, পরিমাপের একক এবং পরিসরের সীমাবদ্ধতা ntoskrnl.exe-এ নিশ্চিত করা হয়েছে। BitLocker নিয়ে Microsoft-এর পুরোনো নথিতে থাকা একই নামের প্যারামিটার অন্য সাবসিস্টেমের সাথে সম্পর্কিত; এই নথিগুলো এখানে সূত্র হিসেবে ব্যবহৃত হয়নি।

EnableAsyncLazywrite Cache Manager-এর অ্যাসিঙ্ক্রোনাস বিলম্বিত লেখা নিয়ন্ত্রণ করে। 25H2 কোডে ডিফল্ট মান 2 নির্ধারিত: এই মোড ইতিমধ্যেই চালু আছে।

একই সাবসিস্টেমের সংশ্লিষ্ট মান:

Value Default 25H2 ভূমিকা
EnableAsyncLazywrite 2 সাধারণ async lazy-write mode
EnableAsyncLazywriteMulti 2 সংলগ্ন multi-volume মোড
EnablePerVolumeLazyWriter 2 Per-volume lazy writer

0 অ্যাসিঙ্ক্রোনাস বিলম্বিত লেখা বন্ধ করে। 1-এর জন্য প্রতিটি ভলিউমে আলাদা বিলম্বিত লেখা হ্যান্ডলারের মোড প্রয়োজন। 2 এই শর্ত ছাড়াই অ্যাসিঙ্ক্রোনাস মোড চালু করে। ভলিউম কনফিগারেশন নিয়ে কাজ করার সময় Cache Manager মানগুলো আবার পড়ে।

স্পষ্টভাবে 2 লেখা Windows 11 25H2-এর স্বাভাবিক কনফিগারেশনের পুনরাবৃত্তি মাত্র এবং অতিরিক্ত কিছু উন্নত করে না। সেটিংটি মূলত ডায়াগনস্টিকের জন্য উপযুক্ত: 0 মান ডিফল্টভাবে চালু থাকা ব্যবস্থা বন্ধ করার সুযোগ দেয়।

পড়া সিস্টেম ট্রেসে লক্ষ্য করা গেছে এবং ntoskrnl.exe-এ নিশ্চিত করা হয়েছে। ডিফল্ট মান 2 কোড এবং রিভার্স ইঞ্জিনিয়ারিংয়ের ফলাফলের ভিত্তিতে তৈরি রেজিস্ট্রি প্যারামিটারের স্বাধীন বর্ণনা দ্বারা নিশ্চিত করা হয়েছে।

প্যারামিটারটি মেগাবাইটে দূরত্ব নির্ধারণ করে, যার পরে Cache Manager অনুক্রমিক পড়ার বর্তমান অবস্থানের পিছনে পড়ে থাকা ক্যাশকৃত ভিউ মুক্ত করে।

প্যারামিটার পড়া এবং প্রয়োগের কোড ntoskrnl.exe-এ রয়েছে এবং ক্যাশ ম্যাপিং ও পড়ার সময় এটি কল করা হয়। প্যারামিটারটি বড় ফাইলের অনুক্রমিক পড়ার সাথে সম্পর্কিত; এটি সম্পূর্ণ ফাইল ক্যাশ বন্ধ করে না।

  • 0 বা 128-এর চেয়ে বড় মান কোড দ্বারা 8 দিয়ে প্রতিস্থাপিত হয়।
  • কার্যকর পরিসর: 1..128 MB।
  • কোডের default: 8 MB।
  • Registry value-এর একক বাইট নয়, ঠিক MB।

প্যারামিটারটি শুধু বড় ফাইলের অনুক্রমিক পড়ার বিশেষায়িত কাজে অর্থবহ। উইন্ডো বড় হলে বর্তমান অবস্থানের পিছনে ক্যাশ ম্যাপিং বেশি সময় ধরে রাখা হয়, ছোট হলে আগে মুক্ত হয়। সাধারণ কাজের জন্য স্বাভাবিক মান 8 MB উপযুক্ত; হাতে সেট করার উপযোগিতা সাধারণত কম।

পড়া, প্রয়োগ এবং পরিসরের সীমাবদ্ধতার কোড ntoskrnl.exe-এ নিশ্চিত করা হয়েছে। এই অভ্যন্তরীণ প্যারামিটারের জন্য Microsoft-এর আধুনিক প্রকাশ্য ডকুমেন্টেশন পাওয়া যায়নি।

0 অবস্থায় ক্যাশ টপোলজি বর্ণনার API সংশ্লিষ্ট কাঠামোর জন্য একটি একক এন্ট্রি ফেরত দেয়, যা একাধিক প্রসেসর গ্রুপ জুড়ে থাকে। 1 অবস্থায় এন্ট্রিগুলো প্রসেসর গ্রুপ অনুযায়ী বিভক্ত হয়।

পড়ার কোড ntoskrnl.exe-এ রয়েছে। প্যারামিটারটি KeQueryLogicalProcessorRelationship-এ RelationCache সম্পর্ক প্রক্রিয়াকরণের সময় ব্যবহৃত হয়।

শুধু সিস্টেম API যে টপোলজি বর্ণনা ফেরত দেয় তা বদলায়। বরাদ্দকৃত ফিজিক্যাল মেমরি ব্লক বিভক্ত হয় না, এবং একটানা ব্লকের ঘাটতির সম্ভাবনা নিজে থেকে কমে না।

  • 0: ডিফল্ট মান।
  • 1: টপোলজি এন্ট্রিগুলো প্রসেসর গ্রুপ অনুযায়ী ভাগ করা।
  • ব্যবহারিক প্রভাব মূলত একাধিক প্রসেসর গ্রুপযুক্ত সিস্টেমে সম্ভব, সাধারণত 64-এর বেশি লজিক্যাল প্রসেসরের ক্ষেত্রে।
  • সাধারণ একক-গ্রুপ সিস্টেমে কোনো প্রভাব নেই।

প্যারামিটারটি শুধু সেই প্রোগ্রামগুলোর জন্য প্রয়োজন যেগুলো একাধিক প্রসেসর গ্রুপযুক্ত মেশিনে ক্যাশ টপোলজি অনুরোধ করে। এটি ক্যাশের কাজ এবং মেমরি বরাদ্দ পরিবর্তন করে না। সাধারণ ডেস্কটপ কম্পিউটারের জন্য কোনো উপযোগিতা নেই।

পড়া এবং প্রয়োগের কোড ntoskrnl.exe-এ নিশ্চিত করা হয়েছে। মান এবং উদ্দেশ্য KiSplitLargeCaches-এর রিভার্স ইঞ্জিনিয়ারিংয়ের প্রকাশ্য বর্ণনার সাথে মিলিয়ে দেখা হয়েছে।

প্যারামিটার ব্যবহারিক মূল্যায়ন
DisablePagingExecutive সাধারণত বেশি কোড RAM-এ ধরে রেখে খুবই কম উপযোগিতা দেয়
DisablePageCombining পটভূমিতে পেজ একত্রীকরণের নিশ্চিত লোড এবং প্রচুর মুক্ত RAM থাকলে উপকারী
HeapDeCommitFreeBlockThreshold শুধু কার্নেলে কাজ করে; সাধারণ অ্যাপ্লিকেশনের জন্য ব্যবহারিক উপযোগিতা নেই
ModifiedWriteMaximum পরিবর্তিত পেজ লেখার শর্ত বদলায়; চিহ্নিত সমস্যা না থাকলে স্বাভাবিক মান রেখে দিন
EnableAsyncLazywrite স্বাভাবিক মান 2 ইতিমধ্যেই ব্যবস্থাটি চালু রাখে; আবার লেখা কিছুই উন্নত করে না
CacheUnmapBehindLengthInMB অনুক্রমিক পড়ার সেটিং; স্বাভাবিক 8 MB সাধারণ কাজের জন্য উপযুক্ত
SplitLargeCaches একাধিক প্রসেসর গ্রুপের জন্য টপোলজি বর্ণনা বদলায়; সাধারণ সিস্টেমে প্রভাব নেই

কী নিশ্চিত হয়েছে এবং কী পরিমাপ করা হয়নি

Заголовок раздела «কী নিশ্চিত হয়েছে এবং কী পরিমাপ করা হয়নি»

উপরের পাথ, টাইপ, ডিফল্ট মান, প্যারামিটার পড়ার কোড ও সময়, এবং পরিসরের সীমাবদ্ধতা নিশ্চিত করা হয়েছে। ফলাফল Windows 11 25H2 build 26200.9168-এর জন্য প্রযোজ্য। অন্য Windows আপডেট, RAM-এর পরিমাণ, স্টোরেজ ডিভাইসের ধরন বা CPU টপোলজিতে আচরণ ভিন্ন হতে পারে।

পর্যবেক্ষণের গতিশীল অংশ কীভাবে পুনরাবৃত্তি করা যায় — দেখুন নিজে কীভাবে যাচাই করবেন।

ফিরিয়ে আনতে প্যারামিটারগুলোর স্বাভাবিক মান দিন অথবা ঐচ্ছিক এন্ট্রিগুলো মুছে ফেলুন। কিছু মান Windows-এর পরবর্তী বুটে প্রয়োগ হয়।

গবেষণা এবং এতে ব্যবহৃত টুলগুলো BoosterX-এর ডেভেলপারের, তাই ফলাফলে ডেভেলপারের সরাসরি স্বার্থ রয়েছে। পদ্ধতি এবং প্রযোজ্যতার সীমা এই নিবন্ধে বর্ণনা করা হয়েছে; সিদ্ধান্তগুলো প্রকাশ্য ডেটা এবং নিচে তালিকাভুক্ত প্রকাশ্য সূত্র থেকে যাচাই করা যায়।

কোড সম্পর্কিত দাবিগুলো Windows 11 25H2-এর সিস্টেম কম্পোনেন্টের স্ট্যাটিক বিশ্লেষণ দিয়ে যাচাই করা হয়েছে। ডিকম্পাইল করা কোড, অফসেট, মূল ট্রেস এবং অভ্যন্তরীণ উপকরণ প্রকাশ করা হয় না।

প্রকাশ্য সূত্র যাচাই করা হয়েছে: 2026-09-02।

  • 2026-09-20: স্বার্থের সংঘাত নিয়ে ডিসক্লেইমার এবং পদ্ধতিতে গতিশীল পর্যবেক্ষণের স্বাধীন যাচাইয়ের লিঙ্ক যোগ করা হয়েছে।
  • 2026-09-02: প্রথম প্রকাশ; পাথ, defaults, clamps এবং প্যারামিটার পড়ার কোড নিশ্চিত করা হয়েছে, ব্যবহারিক উপযোগিতার সীমা যোগ করা হয়েছে।