The Windows 7 Boot Process (sbsl)

Bu makale, Active Directory etki alanlarına katılan Windows bilgisayarlarda devam eden bir OS önyükleme ve kullanıcı oturum açma gecikmesinin bir parçası olan Windows önyükleme işlemi ile ilgilidir. Bu konu ile alakalı bilinen sorunlar ve sorun giderme araçlarını aşağıdaki linkler de bulabilirsiniz:

Donanım performansı, ağ performansı, yöneticilerin eklediği iş yükü miktarı, Microsoft ISV uygulamalarında ve OS bileşenlerindeki verimsizlikler gibi pek çok neden vardır. Bu makalenin amacı okuyuculara, Windows önyükleme işlemine genel bir bakış sağlamasıdır. Böylelikle OS önyükleme işlemindeki gecikmelere bağlı olarak yavaş bir OS başlangıcı ya da yavaş kullanıcı oturum açma işlemini daha iyi anlayabileceksiniz. Alakalı sorunlardan uyku moduna alma, uyku modundan uyandırma ve OS kapatma işlemleri bu makalede yer almamaktadır.

Boot Process Genel Bakış

Hızlı işletim sistemi başlatma performansı, iyi bir kullanıcı deneyimi için kritik öneme sahiptir. Bir bilgisayarda ki işletim sisteminin kullanıcının çalışmaya başlayabileceği yere kadar önyüklemesi için gereken süre, Windows istemci performansı için en önemli ölçütlerden biridir. Windows önyükleme işlemi bir kaç aşamadan oluşmaktadır. Detaylı olarak aşağıdaki şemayı inceleyebilirsiniz.

Windows Performance Toolkit (Windows 7.1 SDK) size BIOS Initialization ve OS Loader dışında diğer tüm aşamaları inceleme imkanı vermektedir.

BIOS Initialization

BIOS Initialization aşamasında, platform yazılımı donanım aygıtlarını tanımlar ve başlatır. Ardından kendi kendini sınama testi (POST) çalıştırır. BIOS geçerli bir sistem diski algılar, ana önyükleme kaydını (MBR) okur ve bootmgr.exe’yi başlattığında Post işlemi sona ermiş olur. Bootmgr.exe, OS Loader fazını başlatan Windows önyükleme bölümünde Winload.exe’yi bulur ve başlatır.

Unutmayın, Windows Performance Toolkit kullanarak bu fazı izlemenin bir yolu yoktur. Zamanı manuel olarak ölçmeniz gerekiyor ve bu safhayı optimize etmek ya da sorun gidermek için, tüm donanım bileşenlerinin BIOS sürümünü ve yazılımlarını en son sürümlere güncellemeniz gerekmektedir. Buna ek olarak BIOS yapılandırmasını kontrol edin (aygıt önyükleme sırası, PXE önyükleme etkin, Hızlı / Hızlı önyükleme (POST kontrolü) etkin, AHCI ayarları vb.)

Son olarak diğer bir önemli nokta ise, BIOS yapılandırmasını değiştirme veya UEFI / BIOS sürümlerini güncelleme konusunda dikkatli olun. Yanlış yapılandırmalar ve başarısız olan güncelleştirmeler, sistem kesintilerine neden olabileceğinden donanım kılavuzlarını dikkatlice okuyun. Mutlaka önceden sistem ve verileriniz için bir yedek oluşturun.

OS LOADER

Bu faz sırasında, winload.exe diskten minimum veriyi okumak için gereken ana sistem sürücü yazılımlarını yükler ve Windows Kernel’in çalıştırılacağı noktayı başlatır. Kernel çalışmaya başladığında, OS Loader sistem kayıt defteri verilerini ve BOOT_START olarak işaretlenmiş ek sürücüleri belleğe yükler. Esas olarak bu aşama önyükleme sürücülerinin başlamasından etkilenir. Çift önyükleme menüsünün neden olduğu bir gecikmenin düzeltilmesi kolay olsa da, tüm önyükleme başlatma sürücülerinin imzalandığından ve güncel olduğundan emin olun.

İmzalanmamış önyükleme başlatma sürücülerini tanımlamak için:

1- Windows Performance Toolkit’i kullanarak bir önyükleme izi oluşturun. Nasıl iz oluşturacağınızı öğrenmek ve analiz etmek için için bu linki takip edebilirsiniz. slow boot and logon analysis articles

2- xperf –i <boottrace.etl> -o bootevents.txt –a dumper komutunu çalıştırın.

3- Findstr /C:”I-DCStart” bootevents.txt > bootevents.csv

4- Excel’i kullanarak bootevents.csv dosyasını açın ve signtool verify / v <driver> komutunu çalıştırın. Signtool.exe, Windows SDK ‘nın bir parçasıdır.

5- İmzalanmamış bir sürücü bulursanız, sürücü güncelleştirmelerini aratın.

OS İnitialization

Bu faz, Kernel başlatma, Tak ve Çalıştır etkinliği, servis başlatma, oturum açma ve Explorer (masaüstü) başlatmayı içerir. OS İnitialization dört alt faza bölünebilir. Her alt evrenin karakteristik özellikleri ve performans açıkları birbirinden farklıdır. Bir önyükleme izini aldıktan sonra, XPERFVIEW.EXE’de farklı alt fazlar gösterilir:

Alt Faz 1 – PreSMSS: Kernel İnitialization

PreSMSS alt fazı, Kernel çağrıldığında başlar. Bu alt faz sırasında, Kernel veri yapılarını ve bileşenlerini başlatır. Ayrıca, OS Loader aşamasında yüklenen BOOT_START sürücülerini başlatan PnP yöneticisini başlatır.

Alt Faz 2 – SMSSInit : Session Initialization

Kernel, Session yönetici kontrol (smss.exe) aşamasına geçtiğinde SMSSInit alt fazı başlar. Sistem kayıt defterini başlatır, BOOT_START olarak işaretlenmemiş aygıtları ve sürücüleri yükler ve başlatır ve alt sistem süreçlerini başlatır. Kontrol winlogon.exe aşamasına geçtiğinde SMSSInit sona erer.

Alt Faz 3 – WinLogonInit: WinLogon Initialization

WinLogonInit alt fazı, SMSSInit tamamlandığında başlar ve Winlogon.exe’yi başlatır. WinLogonInit sırasında kullanıcı oturum açma ekranı görüntülenir, servis kontrol yöneticisi hizmetleri başlatır ve grup policy komut dosyaları çalıştırılır.Explorer işlemi başlatıldığında WinLogonInit sona erer.

Alt Faz 4 – ExplorerInit: Explorer Initialization

Explorer.exe çalıştırıldığında, ExplorerInit alt fazı başlar. Sistem ilk kez burada desktop window manager (DWM) işlemini oluşturur.

Her bir alt fazın detaylı analizi elbette ki yapılabilir ancak bu makalede şimdilik bu kadar değineceğiz. Ancak, bir sorunu tamamen analiz etmek için daha fazla tool a ihtiyacımız olduğu aşikardır. (parallel network traces, Gpsvc logging)

Analizinize, fazlar üzerinde en çok zaman tüketen aşamalarla başlayın ve izleri aynı donanımdaki fresh/clean OS yüklemesiyle karşılaştırın. Size iki örnek:

Eğer WinLogonInit aşaması uzun zaman alırsa, daha ileri analiz için Winlogon grafiğini kullanabilirsiniz.

Bu örnekte, Windows masaüstü yüklenmeden önce Grup Policy işlemi yaklaşık 160 saniye sürdü. Winlogon grafiği GPO işleminin neden 160 saniye sürdüğünü açıklayamamaktadır. (Belki problem ağ sorunları, policy ayarları, GPO tercihleri, komut dosyaları vb. gibi şeylerden kaynaklanıyor olabilir)

Diğer bir örnekte ise, ReadyingProcess / ReadyingThreadId grafikleri analiz edilirken, profil servisinin ağda yaklaşık 25 saniye beklediğini tespit ediyoruz.

The PostBoot

PostBoot aşaması, masaüstü hazır olduğunda ortaya çıkan tüm arka plan etkinliklerini içerir. Kullanıcı masaüstüyle etkileşime girebilir, ancak sistem arka planda servisler, kaset simgeleri ve uygulama kodunu başlatmaya devam edebilir, bu da kullanıcının sistemin yanıtını algılamasını etkiler.

The ReadyBoot Prefecther

Windows önyükleme işlemi sırasında çok fazla veri diskten okunur ve I/O pressure önyükleme performansı için belirleyici faktörlerden biridir. Windows prefetcher (ya da ReadyBoot), Windows’un ihtiyaç duymadan önce verileri bellekten okumasına yardımcı olur. Buna ek olarak, her yeniden başlatma, prefetcher’ın hangi verinin gerekli olduğunu daha iyi tahmin edebilmesine olanak tanır.

ReadyBoot genellikle klasik sabit diskler için açıkken, hızlı SSD’ler için kapalıdır. Prefetcher faaliyetlerini analiz etmenin bir yolu, xperf.exe’yi Windows Performance Toolkit’ten çalıştırmaktır.

Xperf –i  <boottrace.etl> – o prefetcher.txt –a bootprefetch – summary

Yukarıdakiler, sorun gidermeye başlamak için düzeltme bölümünü tanımlamanıza yardımcı olacağı için, Windows önyükleme aşamasında sorunlara nereden başlayacağınıza dair bazı bilgiler verecektir.

Tavsiye: OS katmanındaki sorunu aramadan önce BIOS’u güncelleyip sabit disk performansını karşılaştırma araçlarıyla kontrol ederek donanım platformunu kontrol ediniz.

Kaynak