Problemi anladıktan sonra doğru zamanda doğru veriyi toplamak sorunun teknik anlaşılmasını sağlar. Sunucunun hep donması örneğinde, buna muhtemelen ya bir kaynak tükenmesi, ya da hatalı kod yüzünden belli detaylı senaryolar oluştuğunda meydana gelen bir tarz kilitlenme neden oluyordur. Buradaki varsayımın kilit varsayımı, sunucunun donduktan sonra kendisini yine toparlayamamasıdır. Durum kendiliğinden düzeliyorsa farklı yaklaşımlar gerekebilir.

Burada en mantıklı yaklaşım bir performans monitör loğu başlatmak ve sorun tekrarladığında bellek dumpı oluşturmak.



Bir sunucuyu mavi ekrana düşürmenin en kolay yolu keyboard üzerindendir. Bu sadece direk fiziki konsolda çalışır, RDP üzerinden çalışmaz. Sanal makineyse, Hyper-V manager dan VM e bağlandıktan sonra mavi ekrana düşürmek için aynı tuş kombinasyonunu gönderebiliriz.

Burada bir hazırlık yapmak gerekir:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters altında
Ve
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\kbdhid\Parameters altında CrashOnCtrlScroll isimli REG_DWORD değerini yaratırız ve 1 e set ederiz.
Takiben reboot etmemiz gerekir.

Reboot dan sonra en sağ CTRL tuşunu basılı tutup, SCROLL LOCK tuşuna iki defa tıkladığımızda sunucu mavi ekrana düşer.

Burada ilk reg lokasyonu PS2 keyboard lar için, ikincisi USB keyboard içindir. Bence ama her ihtimale karşı ikisini yapabilirsiniz.

Mavi ekranda, default ayarlarda, 100 e kadar sayar ve reboot eder. Default da dump dosyası sonra C:\Windows\memory.dmp olarak kaydedilir. Default da bu bir kernel belleğin dump dır.

Bu komut ile performans monitör logunu oluşturabiliriz:
logman.exe create counter Perf-Counter-Log -v mmddhhmm -max 300 -c "\LogicalDisk(*)\*" "\Memory\*" "\Network Interface(*)\*" "\Paging File(*)\*" "\PhysicalDisk(*)\*" "\Process(*)\*" "\Processor(*)\*" "\Redirector\*" "\Server\*" "\System\*" -si 00:05:00

Bu örnekte her 300MB da yeni bir log dosyası başlatılacak ve her 5 dakikada bir counterların snapshotu alınacak. Seçili counterları görebilirsiniz.

Bu komut ile başlatabilirsiniz:
logman start Perf-Counter-Log

Reboot dan sonra log otomatikman hep başlar. Servis ile çalıştığı için log off olabilirsiniz. Loglar C:\Perflogs\Admin altında bulunabilir.



Özet olarak:
- keyboard ile dumplayabilmek için registry ayarları yapıyoruz ve reboot ediyoruz
- perfmon logunu başlatıyoruz
- sorunun tekrarlamasını bekliyoruz ve sorun anında (daha önce veya rebootdan sonra değil) mavi ekranı başlatıyoruz
- makine kendiliğinden reboot olduktan sonra perfmonu durduruyoruz: logman stop Perf-Counter-Log

Şimdi sorunu anlayabilmek için herşey elimizdedir.



Başar Güner
Sr. Support Engineer, Microsoft