नव इंस्टॉल्ड Windows 10 वाले कंप्यूटर्स में से एक पर, एक उपयोगकर्ता ने OS के लगातार हैंग होने और धीमे काम की शिकायत करना शुरू कर दिया। टास्क मैनेजर दिखाता है कि लगभग 50% CPU संसाधनों का उपयोग System (ntoskrnl.exe) प्रोसेस द्वारा किया जाता है। इस लेख में मैं हाई CPU उपयोग के मुख्य निदान तरीकों और समस्या वाले Windows कंपोनेंट या सिस्टम ड्राइवर को ढूंढने के तरीकों का वर्णन करने का प्रयास करूंगा।

स्थिति जब System प्रोसेस सिस्टम के आधे से अधिक CPU संसाधनों का उपभोग करता है, नॉर्मल नहीं है। Ntoskrnl.exe OS कर्नेल का एक्जीक्यूटेबल है। यह कोर सिस्टम प्रोसेस है। OS कर्नेल डिवाइसेज के सिस्टम ड्राइवर्स चलाता है, जो समस्या का संभावित स्रोत हैं (सभी ड्राइवर्स हार्डवेयर डेवलपर्स द्वारा ठीक से टेस्ट नहीं किए जाते)।
नियम के रूप में, ड्राइवर कोड में लीक की समस्या और CPU, मेमोरी या डिस्क संसाधनों का हाई उपयोग नए हार्डवेयर, नए ड्राइवर वर्जन (ऑटोमेटिक ड्राइवर अपडेट्स सहित, जिन्हें अक्षम किया जा सकता है) या Windows अपडेट के बाद दिखाई देता है।
टिप. कुछ मामलों में, हाई CPU और मेमोरी लोड Compressed Memory प्रोसेस का कारण बन सकता है।Process Explorer का उपयोग करके समस्याग्रस्त ड्राइवर ढूंढें
यह समझने के लिए कि कौन सा ड्राइवर या मॉड्यूल हाई CPU उपयोग का कारण बनता है, आप फ्री टूल Process Explorer का उपयोग कर सकते हैं। इसे डाउनलोड करें और एडमिनिस्ट्रेटर के रूप में चलाएं।
चल रही प्रोसेस की सूची में System ढूंढें, इस पर राइट-क्लिक करें और इसकी Properties खोलें।

Threads टैब पर जाएं। कर्नेल द्वारा लोड किए गए मॉड्यूल्स की सूची को CPU उपयोग दर (CPU कॉलम) द्वारा सॉर्ट करें। Start Address कॉलम में, उस कंपोनेंट या ड्राइवर का नाम दिखाया जाता है जो हाई लोड का कारण बनता है (नीचे स्क्रीनशॉट समस्या वाले सिस्टम से नहीं है, मेरे मामले में यह ntoskrnl.exe प्रोसेस था)।

Kernrate.exe (Kernrate Viewer) का उपयोग करें
हाई CPU लोड का कारण बनने वाले ड्राइवर को ढूंढने के लिए, आप फ्री Microsoft टूल kernrate.exe (Kernrate Viewer) का भी उपयोग कर सकते हैं। टूल WDK (Windows Device Kit) का हिस्सा है। WDK इंस्टॉलेशन के बाद, आप टूल को फोल्डर …\Tools\Other\amd64 में ढूंढ सकते हैं।
पैरामीटर्स के बिना kernrate.exe चलाएं और डेटा कलेक्ट होने तक प्रतीक्षा करें (10-15 मिनट), फिर Ctrl-C दबाकर टूल को समाप्त करें। Result for Kernel Mode सेक्शन में मॉड्यूल्स की सूची देखें।

जैसा कि आप देख सकते हैं, हमारे उदाहरण में b57nd60x मॉड्यूल हाई CPU उपयोग का कारण बन रहा है। Google या Sigcheck टूल का उपयोग करके (मॉड्यूल से संबंधित ड्राइवर फ़ाइलों का पता लगाने के लिए Sigcheck के उपयोग का उदाहरण देखें), आप पता लगा सकते हैं कि समस्या Broadcom NetXtream Gigabit Ethernet NDIS6.0 ड्राइवर के कारण होती है।
Windows Performance Toolkit (WPT) का उपयोग करें
आप सिस्टम बूट के दौरान CPU उपयोग का विश्लेषण करने के लिए Windows Performance Toolkit (WPT) का भी उपयोग कर सकते हैं। आपको WPT इंस्टॉल करना होगा और Windows Performance Recorder (फर्स्ट लेवल ट्रायंगल + CPU उपयोग → 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 वायरलेस नेटवर्क एडाप्टर) हाई CPU लोड का कारण बनता है।

तो, समस्या ड्राइवर का पता चला है। आगे क्या?
समस्या हल करने के लिए, लेटेस्ट (या पुराने) ड्राइवर वर्जन इंस्टॉल करें, या यदि समस्या किसी भी ड्राइवर वर्जन के साथ बनी रहती है तो हार्डवेयर को पूरी तरह से अक्षम (डिस्कनेक्ट) करें। अपडेटेड ड्राइवर को Driver Verifier का उपयोग करके अतिरिक्त स्ट्रेस-टेस्ट किया जा सकता है।