Diğerlerinin de belirttiği gibi, bu ekran görüntüsünde çok sıkı çalışan CPU'nun tüm zamanını çekirdek modunda harcadığını görebiliriz. (Kırmızı renk.)
Powershell'i yönetici olarak çalıştırırken şunu yazın:
Get-Process | Select Name, PrivilegedProcessorTime | `
Sort-Object PrivilegedProcessorTime -Descending
Listenin en üstündeki işlem, şu anda en çok çekirdek modu CPU saatini kullanan işlemdir. Bu işlem "Sistem" değilse , bu CPU kullanımına hangi kullanıcı modu işleminin neden olduğunu henüz anladınız. En yüksek Ayrıcalıklı İşlemci Süresine sahip işlem, bundan şüphelendiğim Sistem ise, o zaman biraz daha karmaşıktır.
İşlem Gezgini'ni açın. İsteğe bağlı olarak simge sunucunuzu ayarlayın. Tam UAC yüksekliği ile çalıştığınızdan emin olun. Sistem "işlemini" sağ tıklayın ve Özellikler'e gidin. Ardından Konular sekmesine gidin. İş parçacıklarını CPU kullanımına göre sıralayın. Tüm bu çekirdek modu çalışmasına neden olan iş parçacığı burada olmalıdır. Başlangıç Adresi altında listelenen modüle bakarsanız, işin ne ile ilgili olduğuna dair bir ipucu vermelidir. Örneğin, NDIS.sys ise, bu bir ağ arabirimi sürücüsüdür. Sembol sunucusunu ayarlarsanız, modül içindeki bir işlevin adını görmeniz gerekir (modül Microsoft değilse), aksi takdirde modülün başlangıç adresinden sayısal bir uzaklık görürsünüz.
Alternatif olarak, kesintileri, DPC'leri vb. Tanıtmak için Windows Performans Araç Seti'nden Xperf kullanın.
xperf -on PROC_THREAD+LOADER+DPC+INTERRUPT
ile kaydı durdurun xperf -d logfile.etl
Xperf eski Kernrate aracının yerini alır ve size bazı son derece ayrıntılı veriler sağlayabilir.
CPU çekirdek modunda çalışırken, çoğunlukla kesme hizmeti rutinleri çalıştırılır. (ISR) Bir kesinti meydana geldiğinde, kullanıcı modu çalışması bu işlemcide askıya alınır ve CPU bu kesintiye kayıtlı ISR'yi çalıştırır. CPU'nuzun bu kesintilere çok fazla zaman harcadığını görürseniz, bu genellikle güncellenmesi gereken hatalı bir aygıt sürücüsünü gösterir.
Bu senaryo hakkında beni rahatsız eden (cinas amaçlı değil) olsa da, bunu yapan çekirdek iş parçacığının o çekirdeğe benzediği görülüyor . Dağıtıcı neden sadece keyfi bir çekirdek üzerinde çalıştırmak için iş parçacığı zamanlama gibi görünüyor acaba. Bu nedenle, bu aygıt sürücüsünü kimin yazdığını bulmamıza ve onlara dişli DPC'lerin nasıl yapılacağını göstermemize ve çekirdek iş parçacıklarına açıkça benzememeye ihtiyacımız olduğunu hissediyorum.