নতুনভাবে ইনস্টল করা Windows 10-যুক্ত একটি কম্পিউটারে, একজন ব্যবহারকারী.constant হ্যাং এবং OS-এর ধীর কাজের বিষয়ে অভিযোগ করা শুরু করল। Task Manager দেখাচ্ছে যে প্রায় ৫০% CPU রিসোর্স System (ntoskrnl.exe) প্রসেস দ্বারা ব্যবহৃত হচ্ছে। এই আর্টিকেলে আমি উচ্চ CPU ব্যবহার বিভিন্ন প্রসেসের জন্য প্রধান ডায়াগনóstিক পদ্ধতিগুলো এবং সমস্যাযুক্ত Windows কম্পোনেন্ট বা সিস্টেম ড্রাইভার খুঁজে বের করার উপায় বর্ণনা করার চেষ্টা করব।
Ntoskrnl.exe হলো OS কernel-এর এক্সিকিউটেবল। এটি কোর সিস্টেম প্রসেস। OS কernel সিস্টেম ডিভাইসের ড্রাইভারগুলো চালায়, যেগুলো সমস্যার উৎস হতে পারে (সব ড্রাইভার হার্ডওয়্যার ডেভেলপাররা ঠিকমতো টেস্ট করে না)।
নিয়ম হিসেবে, ড্রাইভার কোডে লিক এবং CPU, মেমরি বা ডিস্ক রিসোর্সের উচ্চ ব্যবহার নতুন হার্ডওয়্যার ইনস্টলেশন, নতুন ড্রাইভার সংস্করণ (অটোম্যাটিক ড্রাইভার আপডেট সহ, যেগুলো ডিজেবল করা যায়) বা Windows আপডেটের পর দেখা দেয়।
টিপ. কিছু কেসে, CPU এবং মেমরিতে উচ্চ লোড Compressed Memory প্রসেসের কারণে হতে পারে।
কোন ড্রাইভার বা মডিউল উচ্চ CPU ব্যবহার করছে সেটি বুঝতে আপনি ফ্রি টুল Process Explorer ব্যবহার করতে পারেন। ডাউনলোড করুন এবং অ্যাডমিনিস্ট্রেটর হিসেবে চালান।
চলমান প্রসেসের তালিকায় System খুঁজে বের করুন, এটিতে রাইট-ক্লিক করুন এবং এর Properties খুলুন।
Threads ট্যাবে যান। কেরনেল দ্বারা লোড করা মডিউলের তালিকা CPU ব্যবহার হার (CPU কলাম) অনুযায়ী সর্ট করুন। Start Address কলামে, সেই কম্পোনেন্ট বা ড্রাইভারের নাম দেখা যাবে যা উচ্চ লোড তৈরি করছে (নিচের স্ক্রিনশট সমস্যামূলক সিস্টেম থেকে নয়, আমার কেসে এটি ntoskrnl.exe প্রসেস ছিল)।
উচ্চ CPU লোডের কারণীভূত ড্রাইভার খুঁজে বের করতে আপনি Microsoft-এর ফ্রি টুল kernrate.exe (Kernrate Viewer) ও ব্যবহার করতে পারেন। টুলটি WDK (Windows Device Kit)-এর অংশ। WDK ইনস্টলেশনের পর, আপনি টুলটি ফোল্ডারে পাবেন …\Tools\Other\amd64।
kernrate.exe প্যারামিটার ছাড়া চালান এবং ডেটা সংগ্রহ হওয়ার জন্য অপেক্ষা করুন (১০-১৫ মিনিট), তারপর Ctrl-C চাপিয়ে টুলটি বন্ধ করুন। Result for Kernel Mode সেকশনের মডিউল তালিকা দেখুন।
আপনি দেখতে পাচ্ছেন, আমাদের উদাহরণে b57nd60x মডিউলটি উচ্চ CPU ব্যবহার তৈরি করছে। Google বা Sigcheck টুল ব্যবহার করে (Sigcheck ব্যবহার করে মডিউল সংক্রান্ত ড্রাইভার ফাইল সনাক্ত করার উদাহরণ দেখুন), আপনি সনাক্ত করতে পারবেন যে সমস্যাটি Broadcom NetXtream Gigabit Ethernet NDIS6.0 Driver-কারণ হচ্ছে।
আপনি Windows Performance Toolkit (WPT) ব্যবহার করে সিস্টেম বুটের সময় CPU ব্যবহার বিশ্লেষণ করতে পারেন। আপনাকে WPT ইনস্টল করতে হবে এবং Windows Performance Recorder গ্রাফিক্যাল কনসোলে ডেটা সংগ্রহ শুরু করতে হবে (First level triangle + CPU usage -> Start)।
অথবা আপনি কমান্ড ব্যবহার করে বিশ্লেষণের জন্য ডেটা সংগ্রহ শুরু করতে পারেন:
xperf -on latency -stackwalk profile -buffersize 1024 -MaxFile 256 -FileMode Circular && timeout -1 && xperf -d cpuusage.etl
টিপ। এই পদ্ধতিটি ব্যবহার করার পরামর্শ দেয়া হয় যদি সিস্টেম বুট হওয়ার পর হ্যাং করে যায় এবং সেটিতে কাজ করা সিম্পলি অসম্ভব হয়। স্লো Windows বুট ডায়াগনস্টিক্স পদ্ধতির আর্টিকেলটিও আপনার জন্য উপকারী হতে পারে।
ফাইলটি সেভ করুন এবং Windows Performance Analyzer (WPA)-এ খুলুন। System প্রসেস স্ট্যাক এক্সপ্যান্ড করুন। এই উদাহরণে, আপনি দেখতে পাচ্ছেন যে athrx.sys ড্রাইভার (Atheros Wireless Network Adapter) উচ্চ CPU লোড তৈরি করছে।
তাহলে, সমস্যাযুক্ত ড্রাইভার সনাক্ত হয়েছে। এরপর কী?
সমস্যা সমাধানের জন্য, পরবর্তী (বা পুরানো) ড্রাইভার সংস্করণ ইনস্টল করুন, বা হার্ডওয়্যারটি সম্পূর্ণরূপে ডিজেবল (ডিসকানেক্ট) করুন যদি সমস্যা যেকোনো ড্রাইভার সংস্করণের সাথে থাকে। আপডেট করা ড্রাইভারকে Driver Verifier ব্যবহার করে অতিরিক্ত স্ট্রেস-টেস্ট করা যেতে পারে।