Windows 7 ve Windows Server 2008 R2 Başlangıç Performansını Artırma

 

Microsoft geçtigimiz günlerde yeni bir performans güncellemesi yayinladi, bu güncelleme ile Windows 7 ve Windows Server 2008 R2 nin baslangiç (Startup veya boot) performansini gelistiriyorsunuz.

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

Makaleyi ilk gördügümde aklimdan geçen sorular:

  • Fix in etkisi bilgisayarin ve sunucunun mimari ve konfigürasyonuna göre farklik gösterir mi?
  • Fix baslangiç performansinda gözle görülür bir farklilik gösterecek mi?
  • Fix in negatif bir etkisi olur mu?

Bu fix in sizde (bende) ne gibi bir fark yaratacagini ön görmek mümkün degil (ancak deneme yanilma ile görülebilir), ama Fix in yarattigi (Pozitif veya Negatif) etkiyi bazi ölçüm yöntemleriyle görebiliriz. Elbette bunu ölçmeden önce fix in nerede ve nasil bir gelistirme yaptigini anlamaliyiz. Makalenin detaylarini okudugumuzda gelistirme “SVCHOST.exe” process inde yapmakta, bu noktada öncelikle SVCHOST nedir e biraz deginmek gerekiyor.

SVCHOST.EXE nedir: Kabaca deginecek olursak, DLL (Dynamic-link Libraries) dosyalarindan baslatilan servislerin ayni process altinda (SVCHOST) yürütülmesini saglayan bir sistem uygulamasidir. DLL dosyalari çalistirilabilir olmadigi için bir baslaticiya ihtiyaç duyarlar, SVCHOST.exe bu islevi görür. Windows da çalisan her servis kendi özelligine göre farkli yetkilere ihtiyaç duyar. Ayni yetki ihtiyacina sahip ve birbirleriyle baglanti halinde olan servisler gruplanip ayni SVCHOST process inin altinda çalisirlar. Sonuç olarak bir SVCHOST process inin altinda birden fazla Windows Servisi hizmet vermektedir.

Gelelim güncellemeye, Windows baslangiç sirasinda her bir SVCHOST a bagli bu servisleri sirasiyla çalistirir, ancak her servis DLL ini yüklerken LoadLibrary fonksiyonunu kullanir ve bu noktada SVCHOST LoadLibrary fonksiyonuna cevap gelene kadar buraya bir LOCK koyar ve siradaki servisin çalismasini engeller. Yapilan degisiklik ile SVCHOST artik LoadLibrary fonksiyonuna yapilan sorgunun cevabini beklerken LOCK koymuyor ve diger servislerin bu süreç esnasinda bekleyip zaman kaybetmesini engelliyor.

Peki gerçekten SVCHOST içerisinde baslangici geciktirecek kadar çok servis var mi? Sorunun cevabi EVET. Bu servislere yakindan bakmak gerekirse, tasklist komutunu kullanip detayli bir liste elde edebiliriz, asagidaki örnek kendi kullandigim bilgisayardan alinma.

image

Gördügünüz gibi bilgisayarimda birbirinden farkli birçok SVCHOST mevcut ve bunlaradan bazilari içerisinde geçekten çok sayida servis içeriyior. Örnegin 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 anlamina gelir. Elbette günümüz mimarisinde 0.5 saniye çok büyük bir rakam ve bu tür bir gecikmenin olasiligi biraz düsük. Ancak sirf bu çiktiya bakarak güncellemenin pozitif bir etki yaratacagini düsünmek mümkün.

Peki bu durumda bu degisikligin bilgisayarinizin açilis performansina olacak etkisini nasil ölçebiliriz? Ben bu test için Microsoft un XPERF uygulamasini kullandim. XPERF ile boot logging yapmaniz ve Windows unuzun açilis süresini ölçmeniz mümkün.

Asagidaki grafikler bilgisayarimin güncelleme öncesi ve sonrasi [CPU // PROCESS (sadece SVCHOST a filtreli) // ZAMAN] parametreleri üzerinden karsilastirmali bir açilis performansi ölcümünü göstermekte.

FIX ÖNCESINDE:

Açilis ortalama 45 saniyenin üzerinde, SVCHOST tarafindan CPU kullanimi maximum %30 civari, kirmizi ile gösterdigim noktalarda minimal derecede SVCHOST aktivitesi görülüyor, bunun LOCK dan kaynakli olma ihtimali yüksek. 

image

FIX SONRASINDA:

Açilis ortalama 36 saniyenin üzerinde, SVCHOST tarafindan CPU kullanimi yine maximum %30 civari, fakat kirmizi ile gösterdigim noktalarda maximum derecede SVCHOST aktivitesi görülüyor, artik LOCK kullanilmadigi için SVCHOST altindaki tüm servisler bagimsiz sekilde çalistiriliyor. Açilis performansa pozitif etkisi bariz bir sekilde ortada.

image

 

Bu sonuçlar dogrultusunda makalemin basinda sordugum 3 sorunun cevabini söyle verebilirim.

  • Fix in etkisi bilgisayarin ve sunucunun mimari ve konfigürasyonuna göre farklik gösterir mi? EVET
  • Fix baslangiç performansinda gözle görülür bir farklilik gösterecek mi? Büyük olasilikla EVET
  • Fix in negatif bir etikisi olur mu? HAYIR

Özetle bu güncelleme açilis performansimda gözle görülür 8-10 saniyelik bir hizlanma gösterdi, yazimi sonlandirmadan önce kullandigim laptop un özellikleri ( i7 620M, 8GB DDR3 RAM ve 240GB SSD //Win7 sp1 x64 ) gayet iyi oldugu için bu güncellemenin daha düsük kapasiteli bilgisayarlarda çok daha etkili olmasi sözkonusu. Umarim makalem az da olsa bu konuda sizlere fikir vermistir.

Güncellemenin kurulabilecegi isletim sistemleri: 

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

/Tuna Gezer