কম্পিউটার

উইন্ডোজে উচ্চ নন-পেজড পুল মেমরি ব্যবহার (লিক)

উইন্ডোজ কম্পিউটার এবং সার্ভারগুলি একটি নির্দিষ্ট সিস্টেম ড্রাইভারের লিকের কারণে মেমরি ওভারফ্লোতে সমস্যা অনুভব করতে পারে যা সিস্টেমের নন-পেজড মেমরি পুলে এর ডেটা সংরক্ষণ করে। নন-পেজড মেমরি পু l হ'ল অপারেটিং সিস্টেমের কার্নেল এবং ড্রাইভারদের দ্বারা ব্যবহৃত কম্পিউটারের RAM-এর ডেটা। নন-পেজড পুল কখনই ডিস্কে (পেজিং ফাইলে) অদলবদল করা হয় না, এটি সর্বদা শুধুমাত্র শারীরিক মেমরিতে সংরক্ষণ করা হয়।

আপনি মেমরি-এ নন-পেজড মেমরির বর্তমান আকার দেখতে পারেন পারফরম্যান্সের বিভাগ টাস্ক ম্যানেজারে ট্যাব। নীচের স্ক্রিনশট দেখায় যে সার্ভারের প্রায় সমস্ত মেমরি ব্যস্ত, এবং এর বেশিরভাগ অংশ নন-পেজড পুল 4.2GB দ্বারা দখল করা হয়েছে। সাধারণত, নন-পেজড পুলের আকার খুব কমই 200-400 MB ছাড়িয়ে যায়। একটি বড় নন-পেজড পুল সাইজ প্রায়শই নির্দেশ করে যে কিছু সিস্টেম কম্পোনেন্ট বা ডিভাইস ড্রাইভারে মেমরি লিক আছে।

উইন্ডোজে উচ্চ নন-পেজড পুল মেমরি ব্যবহার (লিক)

সার্ভারে নন-পেজড পুলে মেমরি লিক হলে, নিম্নলিখিত ইভেন্টগুলি সিস্টেম ইভেন্ট লগে উপস্থিত হবে:

ইভেন্ট আইডি:2019
সূত্র:Srv
বিবরণ:The server was unable to allocate from the system nonpaged pool because the pool was empty

বেশিরভাগ ক্ষেত্রে, উপরে বর্ণিত মেমরি ফাঁসের কারণ হল উইন্ডোজে ইনস্টল করা তৃতীয় পক্ষের ড্রাইভারগুলির সাথে কিছু সমস্যা। একটি নিয়ম হিসাবে, এগুলি নেটওয়ার্ক ড্রাইভার। অনুগ্রহ করে, বড় ফাইল ডাউনলোড করার সময় পুলের আচরণের দিকে মনোযোগ দিন (সম্ভবত, এটি দ্রুত বৃদ্ধি পায়)।

উইন্ডোজে সর্বাধিক নন-পেজড পুলের আকার:

  • Windows x64 পর্যন্ত 128 Gb পর্যন্ত এবং শারীরিক মেমরির 75% এর বেশি নয়
  • Windows x86 2 Gb পর্যন্ত এবং 75% এর বেশি RAM নয়

শুধুমাত্র উইন্ডোজ রিবুট নন-পেজড পুল পরিষ্কার করতে সাহায্য করে। এটি একটি হোম ডিভাইসের জন্য গ্রহণযোগ্য হতে পারে, তবে 24/7 কাজ করা সার্ভারের জন্য আপনার একটি ভাল সমাধান খুঁজে পাওয়া উচিত।

বিষয়বস্তু:

  • নেটওয়ার্ক ডেটা ব্যবহার মনিটরিং ড্রাইভার নিষ্ক্রিয় করুন
  • একটি কার্নেল-মোড মেমরি লিক খুঁজতে PoolMon ব্যবহার করে
  • নেটওয়ার্ক অ্যাডাপ্টার ড্রাইভারের সর্বশেষ সংস্করণ ইনস্টল করুন
  • হাইপার-ভি ভূমিকা নিষ্ক্রিয় করুন

নেটওয়ার্ক ডেটা ব্যবহার মনিটরিং ড্রাইভার নিষ্ক্রিয় করুন

প্রায়শই, নন-পেজড পুলে মেমরি লিক হওয়ার কারণ হল নেটওয়ার্ক অ্যাক্টিভিটি মনিটরিং ড্রাইভারের অসঙ্গতি (নেটওয়ার্ক ডেটা ব্যবহার — NDU, %WinDir%\system32\drivers\Ndu.sys ) নেটওয়ার্ক অ্যাডাপ্টার ড্রাইভার সহ। প্রায়শই কিলার নেটওয়ার্ক এবং MSI নেটওয়ার্ক কার্ড ড্রাইভার এনডিইউ ড্রাইভারের সাথে দ্বন্দ্ব করে। এই পরিষেবাটি উইন্ডোজ কার্যকারিতার অনেক ক্ষতি ছাড়াই নিষ্ক্রিয় করা যেতে পারে৷

কমান্ড দিয়ে NDU পরিষেবা বন্ধ করুন:

sc config NDU start= disabled

উইন্ডোজে উচ্চ নন-পেজড পুল মেমরি ব্যবহার (লিক)

অথবা রেজিস্ট্রির মাধ্যমে:

  1. রেজিস্ট্রি এডিটর খুলুন (regedit.exe );
  2. রেজিস্ট্রি কী এ যান HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Ndu\;
  3. স্টার্ট এর মান পরিবর্তন করুন 4. এর প্যারামিটার

উইন্ডোজে উচ্চ নন-পেজড পুল মেমরি ব্যবহার (লিক)

পরিবর্তন করার পরে, আপনাকে আপনার কম্পিউটার পুনরায় চালু করতে হবে৷

একটি কার্নেল-মোড মেমরি লিক খুঁজতে PoolMon ব্যবহার করে

আপনি নন-পেজড পুলে মেমরি লিক হওয়া ড্রাইভারটিকে সনাক্ত করার চেষ্টা করতে পারেন। এটি করার জন্য, আমাদের Poolmoon.exe প্রয়োজন কনসোল টুল Windows ড্রাইভার কিট-এ অন্তর্ভুক্ত (WDK)। Microsoft থেকে আপনার Windows সংস্করণের জন্য WDK ডাউনলোড এবং ইনস্টল করুন। তারপর Poolmon.exe চালু করুন (WDK-এর ক্ষেত্রে Windows 10, টুলটি C:\Program Files (x86)\Windows Kits\10\Tools\-এ অবস্থিত। ফোল্ডার)।

আপনি টুলটি শুরু করার পরে, P টিপুন . দ্বিতীয় কলামটি নন-পেজড মেমরি (ননপ অ্যাট্রিবিউট) ব্যবহার করে এমন প্রক্রিয়াগুলির ট্যাগগুলি প্রদর্শন করবে। তারপর B টিপুন বাইট কলাম দ্বারা ড্রাইভার তালিকা বাছাই করার জন্য কী।

উইন্ডোজে উচ্চ নন-পেজড পুল মেমরি ব্যবহার (লিক)

বাম কলাম ড্রাইভার ট্যাগ তালিকা. আপনার কাজ এই ট্যাগ ব্যবহার করে ড্রাইভার ফাইল সনাক্ত করা হয়. আমাদের উদাহরণে, আপনি দেখতে পাচ্ছেন যে নন-পেজড পুলের বেশিরভাগ RAM Nr22 ট্যাগ সহ ড্রাইভাররা ব্যবহার করে , চল , এবং smNp .

আপনাকে strings.exe ব্যবহার করে পাওয়া ট্যাগগুলির জন্য ড্রাইভার পরীক্ষা করা উচিত টুল (Sysinternals থেকে), বিল্ট-ইন findstr ব্যবহার করে কমান্ড, অথবা PowerShell ব্যবহার করে।

আপনি যে ট্যাগগুলি পেয়েছেন তার সাথে যুক্ত ড্রাইভার ফাইলগুলি খুঁজে পেতে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন:

findstr /m /l /s Nr22 %Systemroot%\System32\drivers\*.sys
findstr /m /l /s ConT %Systemroot%\System32\drivers\*.sys
findstr /m /l /s smNp %Systemroot%\System32\drivers\*.sys

অথবা, আপনি PowerShell:

ও ব্যবহার করতে পারেন

Set-Location "C:\Windows\System32\drivers"
Select-String -Path *.sys -Pattern "Nr22" -CaseSensitive | Select-Object FileName -Unique
Select-String -Path *.sys -Pattern "Py28" -CaseSensitive | Select-Object FileName -Unique
Select-String -Path *.sys -Pattern "Ne40" -CaseSensitive | Select-Object FileName –Unique

আপনি poolmon.exe-এ সরাসরি ট্যাগের জন্য ড্রাইভার ফাইল ম্যাপ করতে পারেন। এটি করতে, pooltag.txt নিশ্চিত করুন ফাইলটি টুল ডিরেক্টরিতে রয়েছে। আপনি WDK ইনস্টলেশন ডিরেক্টরি থেকে pooltag.txt কপি করতে পারেন বা GitHub থেকে ডাউনলোড করতে পারেন। নিম্নরূপ পুলমন চালান:

poolmon /g

উইন্ডোজে উচ্চ নন-পেজড পুল মেমরি ব্যবহার (লিক)

মনে রাখবেন যে ড্রাইভারের নাম এখন ম্যাপড_ড্রাইভার-এ প্রদর্শিত হয়েছে কলাম

তাই আমরা ড্রাইভার ফাইলের তালিকা পেয়েছি যা সমস্যার কারণ হতে পারে। এখন আপনাকে সনাক্ত করতে হবে যে এই ফাইলগুলি তাদের নাম দ্বারা কোন ড্রাইভার এবং সিস্টেম উপাদানগুলিকে নির্দেশ করে৷ এটি করতে, আপনি sigcheck ব্যবহার করতে পারেন৷ Sysinternals থেকে টুল।

sigcheck C:\Windows\System32\drivers\rdyboost.sys

টুলটি ড্রাইভার বা উইন্ডোজ কম্পোনেন্টের নাম, বিবরণ এবং সংস্করণ প্রদান করে।

উইন্ডোজে উচ্চ নন-পেজড পুল মেমরি ব্যবহার (লিক)

এখন আপনি সমস্যা ড্রাইভার বা পরিষেবা আনইনস্টল/আপডেট/পুনরায় ইনস্টল করার চেষ্টা করতে পারেন।

যদি একটি মেমরি লিক একটি BSOD এর ফলে, আপনি একটি মেমরি ডাম্প ফাইলে সমস্যাযুক্ত ড্রাইভার সনাক্ত করতে পারেন৷

  1. Windbg ডিবাগারে একটি মেমরি ডাম্প লোড করুন;
  2. কমান্ড চালান:!vm
  3. যদি ননপেজডপুল ব্যবহার মান NonPagedPool Max এর থেকে বেশি৷ , এর মানে হল নন-পেজড পুল নিঃশেষ হয়ে গেছে;
  4. কমান্ডের সাহায্যে পুলের বিষয়বস্তু পরীক্ষা করুন (ফলাফল পৃষ্ঠাবিহীন পুল ব্যবহার অনুসারে সাজানো হবে):!poolused 2
  5. ড্রাইভার ট্যাগ পাওয়ার পর, findstr ব্যবহার করে ড্রাইভার ফাইলটি খুঁজুন অথবা strings.exe উপরে বর্ণিত হিসাবে।

নেটওয়ার্ক অ্যাডাপ্টার ড্রাইভারের সর্বশেষ সংস্করণ ইনস্টল করুন

বিক্রেতার ওয়েবসাইট থেকে আপনার নেটওয়ার্ক অ্যাডাপ্টারের জন্য সর্বশেষ ড্রাইভার সংস্করণ ডাউনলোড এবং ইনস্টল করার চেষ্টা করুন৷

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

হাইপার-ভি ভূমিকা নিষ্ক্রিয় করুন

কিছু ক্ষেত্রে, ইনস্টল করা হাইপার-ভি ভূমিকা নন-পেজড পুলে মেমরি লিক ঘটাচ্ছে। আপনার এই ভূমিকার প্রয়োজন না হলে, আমরা এটিকে নিষ্ক্রিয় করার পরামর্শ দিই৷

Windows সার্ভারে আপনি PowerShell কমান্ডের সাহায্যে Hyper-V ভূমিকা নিষ্ক্রিয় করতে পারেন:

Remove-WindowsFeature -Name Hyper-V

Windows 10 এর জন্য কমান্ড:

Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

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

উইন্ডোজে উচ্চ নন-পেজড পুল মেমরি ব্যবহার (লিক)

এই নির্দেশিকা Windows Server 2019/2016/2012R এবং ডেস্কটপ Windows 10/8.1 উভয়ের জন্যই প্রযোজ্য।


  1. NisSrv.exe কী এবং উইন্ডোজ 10 এ NisSrv.exe উচ্চ মেমরি ব্যবহার কীভাবে ঠিক করবেন

  2. Windows 10 এ IAStorDataSvc উচ্চ সিপিইউ মেমরি ব্যবহার কিভাবে ঠিক করবেন

  3. কীভাবে ডায়াগনস্টিক পলিসি পরিষেবা উচ্চ সিপিইউ এবং মেমরি ব্যবহার ঠিক করবেন

  4. কিভাবে Google ক্রোম উইন্ডোজ 10 এ উচ্চ মেমরির ব্যবহার কমাতে হয়