Microsoft geçtiğimiz günlerde yeni bir performans güncellemesi yayınladı, bu güncelleme ile Windows 7 ve Windows Server 2008 R2 nin başlangıç (Startup veya boot) performansını geliştiriyorsunuz.

An update that improves the startup performance of Windows 7 and of Windows Server 2008 R2 is available

Makaleyi ilk gördüğümde aklımdan geçen sorular:

  • Fix in etkisi bilgisayarın ve sunucunun mimari ve konfigürasyonuna göre farklık gösterir mi?
  • Fix başlangıç performansında gözle görülür bir farklılık gösterecek mi?
  • Fix in negatif bir etkisi olur mu?

Bu fix in sizde (bende) ne gibi bir fark yaratacağını ön görmek mümkün değil (ancak deneme yanılma ile görülebilir), ama Fix in yarattığı (Pozitif veya Negatif) etkiyi bazı ölçüm yöntemleriyle görebiliriz. Elbette bunu ölçmeden önce fix in nerede ve nasıl bir geliştirme yaptığını anlamalıyız. Makalenin detaylarını okuduğumuzda geliştirme “SVCHOST.exe” process inde yapmakta, bu noktada öncelikle SVCHOST nedir e biraz değinmek gerekiyor.

SVCHOST.EXE nedir: Kabaca değinecek olursak, DLL (Dynamic-link Libraries) dosyalarından başlatılan servislerin aynı process altında (SVCHOST) yürütülmesini sağlayan bir sistem uygulamasıdır. DLL dosyaları çalıştırılabilir olmadığı için bir başlatıcıya ihtiyaç duyarlar, SVCHOST.exe bu işlevi görür. Windows da çalışan her servis kendi özelliğine göre farklı yetkilere ihtiyaç duyar. Aynı yetki ihtiyacına sahip ve birbirleriyle bağlantı halinde olan servisler gruplanıp aynı SVCHOST process inin altında çalışırlar. Sonuç olarak bir SVCHOST process inin altında birden fazla Windows Servisi hizmet vermektedir.

Gelelim güncellemeye, Windows başlangıç sırasında her bir SVCHOST a bağlı bu servisleri sırasıyla çalıştırır, ancak her servis DLL ini yüklerken LoadLibrary fonksiyonunu kullanır ve bu noktada SVCHOST LoadLibrary fonksiyonuna cevap gelene kadar buraya bir LOCK koyar ve sıradaki servisin çalışmasını engeller. Yapılan değişiklik ile SVCHOST artık LoadLibrary fonksiyonuna yapılan sorgunun cevabını beklerken LOCK koymuyor ve diğer servislerin bu süreç esnasında bekleyip zaman kaybetmesini engelliyor.

Peki gerçekten SVCHOST içerisinde başlangıcı geciktirecek kadar çok servis var mı? Sorunun cevabı EVET. Bu servislere yakından bakmak gerekirse, tasklist komutunu kullanıp detaylı bir liste elde edebiliriz, aşağıdaki örnek kendi kullandığım bilgisayardan alınma.

image

Gördüğünüz gibi bilgisayarımda birbirinden farklı  birçok SVCHOST mevcut ve bunlaradan bazıları içerisinde geçekten çok sayıda servis içeriyior. Örneğin 116 Process ID li SVCHOST içersinde tam olarak 18 servis içeriyor, burada her library de 0,5 saniyelik bir bekleme süresi olsa bu benim sistemimde ortalama 9 saniyelik bir gecikme olacak anlamına gelir. Elbette günümüz mimarisinde 0.5 saniye çok büyük bir rakam ve bu tür bir gecikmenin olasılığı biraz düşük. Ancak sırf bu çıktıya bakarak güncellemenin pozitif bir etki yaratacağını düşünmek mümkün.

Peki bu durumda bu değişikliğin bilgisayarınızın açılış performansına olacak etkisini nasıl ölçebiliriz? Ben bu test için Microsoft un XPERF uygulamasını kullandım. XPERF ile boot logging yapmanız ve Windows unuzun açılış süresini ölçmeniz mümkün.

Aşağıdaki grafikler bilgisayarımın güncelleme öncesi ve sonrası [CPU // PROCESS (sadece SVCHOST a filtreli) // ZAMAN] parametreleri üzerinden karşılaştırmalı bir açılış performansı ölcümünü göstermekte.

FİX ÖNCESİNDE:

Açılış ortalama 45 saniyenin üzerinde, SVCHOST tarafından CPU kullanımı maximum %30 civarı, kırmızı ile gösterdiğim noktalarda minimal derecede SVCHOST aktivitesi görülüyor, bunun LOCK dan kaynaklı olma ihtimali yüksek. 

image

FİX SONRASINDA:

Açılış ortalama 36 saniyenin üzerinde, SVCHOST tarafından CPU kullanımı yine maximum %30 civarı, fakat kırmızı ile gösterdiğim noktalarda maximum derecede SVCHOST aktivitesi görülüyor, artık LOCK kullanılmadığı için SVCHOST altındaki tüm servisler bağımsız şekilde çalıştırılıyor. Açılış performansa pozitif etkisi bariz bir şekilde ortada.

image

 

Bu sonuçlar doğrultusunda makalemin başında sorduğum 3 sorunun cevabını şöyle verebilirim.

  • Fix in etkisi bilgisayarın ve sunucunun mimari ve konfigürasyonuna göre farklık gösterir mi? EVET
  • Fix başlangıç performansında gözle görülür bir farklılık gösterecek mi? Büyük olasılıkla EVET
  • Fix in negatif bir etikisi olur mu? HAYIR

Özetle bu güncelleme açılış performansımda gözle görülür 8-10 saniyelik bir hızlanma gösterdi, yazımı sonlandırmadan önce kullandığım laptop un özellikleri ( i7 620M, 8GB DDR3 RAM ve 240GB SSD //Win7 sp1 x64 ) gayet iyi olduğu için bu güncellemenin daha düşük kapasiteli bilgisayarlarda çok daha etkili olması sözkonusu. Umarım makalem az da olsa bu konuda sizlere fikir vermiştir.

Güncellemenin kurulabileceği işletim sistemleri: 

  • Windows 7
  • Windows 7 Service Pack 1 (SP1)
  • Windows Server 2008 R2
  • Windows Server 2008 R2 Service Pack 1 (SP1)

/Tuna Gezer