Yavaş Windows kapatmamın cezasını nasıl belirleyebilirim?


30

Bilgisayarımın kapanması çok zaman alıyor.

Suçluyu nasıl tespit edebilirim? Bilgisayarımın kapanması için dakika beklemek istemiyorum ...

Kapatmanın ne kadar sürdüğünü izlemek için kullanabileceğim bir program var mı?


1
Sisteminizin nasıl kurulduğunu ve arka planda ne çalışabileceğini bilmiyoruz
rastgele

1
Tamam ... Başkasının sorduğunu gördüm, sonra çok uzun ve tam bir cevap oluştururken sildim ... (kendim için biraz üzüldüm)
wizlog

Her zaman blog için bunu önerebilirsiniz
rastgele

2
Güç düğmesini birkaç saniye basılı tutun.
Daniel R Hicks,

5
Bu soru geçerlidir, bu sorunun çözümü için nesnel olarak cevap verebilirim. Belirsiz bir şey yok (sorun şu ki kapanma süresinin uzun sürmesi), belirsiz (kapanmasını hızlandırmak istiyor), eksik (ayrıntılar gerekli değildir, elbette her bilgisayar farklıdır ancak bu teknik yapmaz) suçluyu herhangi bir farklı olarak tanımlamak için), aşırı geniş (öyle düşünebilirsin, ama sorun giderme kapanmasıyla ilgili başka bir soru göremiyorum, bu yüzden bu gerçekten çok değerli bir soru; başka şeyleri hızlandırmak isterse geniş olacağını düşünüyorum. ) veya retorik (Xperf'i içerir).
Tamara Wijsman

Yanıtlar:


31

, Windows sağlayan Performans sayaçlarını yanı sıra Olay izlemeyi : Bir olağanüstü araç var var olduğunu olanlar arasında, uygulamalar biri olduğunu pin-noktası böylece performans sorunlarının nedenini performans analizi yapmanızı sağlar Windows Performans Toolkit mevcut içinde Windows SDK .

Bu araç setinde xbootmgr.exe, Windows Açık / Kapalı Geçiş Performansı Analizi anlamına gelir .

Yukarıdaki bağlantılı belge her açma / kapama geçişi için tüm ayrıntılara girmesine rağmen, işte xbootmgrve xperf GUI'yi kullanarak kapatma geçişini izleme ve analiz etme ile ilgili genel fikir :

  1. Windows SDK'yı indirin, ardından kullanarak Windows Performans Araç Takımı'nı yükleyin.

  2. Yönetici olarak bir komut istemi açın, sonra çalıştırın:

    cd %ProgramFiles%\Microsoft Windows Performance Toolkit

  3. Gelecekte yardım istiyorsanız, xbootmgr -helpyanı sıra yazabilirsiniz xperf /?.

  4. Böyle bir yeniden başlatma izini yapın:

    xbootmgr -trace shutdown -traceFlags BASE+DIAG+LATENCY -noPrepReboot

  5. Önyüklemeden sonra iki dakika içinde bir iz oluşturur.

  6. İzleme kaydedildi %ProgramFiles%\Microsoft Windows Performance Toolkit, üzerine sürükleyebilirsiniz xperf.exeve bir GUI'de açılacaktır.

  7. Farklı grafik grafikler içeren bir GUI göreceksiniz, sol taraftaki ok grafik eklemenizi / kaldırmanızı sağlar.

  8. Grafiklere bakın ve sıra dışı bir şey tespit edip edemediğinizi görün, bir aralık seçebilir ve isterseniz onu yakınlaştırabilirsiniz. Tümü görmek istediğinizde sağ tıklayın ve geri dönün.

  9. Her grafikte, seçili aralık için özet tabloları almak üzere sağ tıklayabilirsiniz .

  10. Bu tablolarda, en çok harcadığı parayı bulmak için ağırlığa veya zamana göre sıralayın. Lütfen sütunların etrafını sürükleyebileceğinizi unutmayın; örneğin, G / Ç tablosu en yüksek kullanım sürecini ve en yüksek kullanım yolunu kontrol etmenize izin verir.

    Bölücü (sarı başlıklı sütun), sağdaki sütunlar, kalan sütunların toplamını gösterecek şekilde yapar. Böylece, önce Path'e ve sonra İşlem'e sahipseniz, hangi işlemlerin ona eriştiğini görmek için ağacı açabilir ve ardından bu işlem / dosya kombinasyonunun toplamını elde edebilirsiniz.

  11. Grafiklerin ve tabloların nasıl çalıştığı hakkında daha fazla bilgiyi burada bulabilirsiniz .

  12. Bir şekilde yığın izlerine bakmak için aşağı inmeniz gerekiyorsa; başka bir önyükleme izleme yapın ve -stackWalk profileparametreyi ekleyin, _NT_SYMBOL_PATH öğesini ayarlayın ve herhangi bir grafiğe sağ tıklayın ve "Sembolleri Yükle" yi etkinleştirin. Bu, gerçekte hangi işlevleri çağırdığını kontrol etmenize izin verir, genel olarak kapatma için buna ihtiyacınız olmaz; ancak güvenlik duvarınızın bir programcı olarak hata ayıklayıcınızı engellediğini keşfetme gibi şeylere izin verebilir. Oldukça şık ...

İyi şanslar, umarım suçluyu bulabilirsin. O zaman iz bırakmazsan seni ararız ...

DPC'lerin Ertelenmiş Prosedür Çağrıları ve Kesintilerin , her ikisi de sürücüler / donanım ile ilgili olan Yazılım Kesintileri olduğunu lütfen unutmayın .


1
Şaşırtıcı yararlı cevap. ETW ile ilgili tüm dersler olağanüstü faydalıdır; Windows belgelerini ve kılavuz için GUI olmadan bir alandır.
Ian Boyd

@Tom Wijsman Linklerin güncellenmesi gerekiyor
Moab

Şimdi, Windows Değerlendirme ve Dağıtım Kiti'nin bir parçası olan, örneğin msdn.microsoft.com/en-us/windows/hardware/commercialize/test/… adresinde veya "Windows ADK" yi arayarak bir Bağlantı bulunabilir . Kurulum sırasında, sadece Performans Araç Takımını seçmek mümkündür.
Andreas Reiff

Şimdi de bir parçası ... çünkü SDK'da hala mevcut.
Tamara Wijsman,

22

Kapanış yerim kaçmak için uzun zaman alıyor. Aşağıda benim örneğidir Tom'un cevap .

İlk grafik problemi gösteriyor, Disk G / Ç :

görüntü tanımını buraya girin

Kapatmam bir dakikadan fazla sürüyor ve hepsi sabit disk I / O.

Bir sonraki grafik, Disk Kullanımı , bir sürücünün% 100 kullanımda neredeyse maksimum düzeye çıktığını gösteriyor:

görüntü tanımını buraya girin

Son grafik Prosesle Disk Kullanımını göstermektedir :

görüntü tanımını buraya girin

Filtrelemek, her şeyin yol açtığı şeyin farkındayım WinInit.exe:

görüntü tanımını buraya girin

Sabit sürücü grafiklerinden herhangi birine sağ tıklayıp Özet Tablosu'nu seçerek , hangi işlemlerin hangi dosyalara eriştiğinin ayrıntılarını öğrenebilirim:

görüntü tanımını buraya girin

Kapanışımın 56.4 saniyesine WinInit6.7GB yazılarak harcandı C:\hiberfil.sys.


Ancak soru şu ki , Windows kapatma sırasında hazırda bekleme dosyama neden yazıyor ?

Sonra bu disk belleği dosyasını kapatıldığında silmek için açtığım bir seçeneği hatırladım :

  • Başlat -> Çalıştır -> SecPol.msc
    • Güvenlik Ayarları, Yerel Politikalar, Güvenlik Seçenekleri
    • Kapatma: Sanal bellek sayfa dosyasını temizle

görüntü tanımını buraya girin

Bu yüzden seçeneği devre dışı bıraktım ve xbootmgrtekrar çalıştırın . Şimdi kapatmam 22 saniye.

görüntü tanımını buraya girin

Şimdi 9sbir 22skapatma harcanma Systembazı yazılı unknowndosyaya. Bu daha fazla araştırmaya layık olabilir.

Ama şimdilik, bir buçuk dakikalık kapanışımı çözdüm.


daha ileri gittim ve 22'lerin yavaş kapanışını çözdüm. T = ' 12sdan t =' ya 21s% 100 Disk Kullanımı , ancak sıfır Disk I / O gösterildi . Şaşırtıcıydı.

Bir kapatma işlemi sırasında, sürücülerimden birinin tanıdık sesini duydum. Windows, uykuya dalmakta olan bir diske erişmeye çalıştığı için kapatma 9 saniye durdu. Dokuz saniye sonra sürücü yanıt verir ve bir dakika sonra makine kapanır.

Ironic, Windows'un uyku zamanı olduğunu söylemek için bir disk uyandırıyor.

Bu benim gerçek kapanışımı 13,5 saniye yapar. Daha fazla araştırmaya değebilir. Ama şimdilik 22 saniyelik kapanışımı çözdüm.


1
+1 Davanızda çözdüğünüze sevindim, ve güzel bir yazı!
Tamara Wijsman

1
Bu cevaplar bir blog gönderisini haketmiyor mu? ;)
Ivo Flipse
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.