NT’de Performance Monitor Konsolu
Murat Yıldırımoğlu, Windows 2000 Magazine dergisinden çeviri
Bir bilgisayarın performansını düşündüğünüzde aklınıza bir zincir
gelsin: En yavaş sistem bileşeni (zincirdeki en zayıf halka) tüm sistemin
performansını belirler. Performans zincirindeki zayıf halka
darboğaz olarak da adlandırılır. Bir darboğazın en iyi göstergesi, son
kullanıcıların sistem performansındaki düşme olduğu ve uygulamaların yavaş çalıştığı şeklindeki
izlenimleridir. Bir sistemin performansını ayarlamak için darboğazın nerede
(işlemci, bellek, disk, ağ sistemi, uygulamalar,
istemciler vb.) olduğunu saptamanız gerekir.
Sistemin performansını en iyilemek için ve
potansiyel darboğazları belirlemek için NT Server’ın kendi araçlarını (ya da
üçüncü parti ürünleri) kullanabilirsiniz. NT Server’ın birincil
performans izleme araçları Şekil 1’de görülen Task Manager ve Şekil 2’de
görülen Performance Monitor programlarıdır. Task Manager, sistemde olan biten
şeyler için genel bir bakış olanağı sağlar. Bilgileri bir günlük dosyasına
yazma olanağı sağlamasa da Task Manager sisteminizde çalışmakta olan programlar
ve prosesler için
bir takım bilgiler sağlar. Task Manager sisteminizi
kötü yönde etkileyebilecek programları yönetebilmenizi (örneğin, onları
sonlandırabilmenizi) sağlar. Performance Monitor’ı daha ayrıntılı performans bilgisi elde etmek
için kullanırız (hem o andaki durumu, hem de bir günlük dosyasından çıkarılan
geçmiş durumu gösterebilen grafikler ve raporlar şeklinde). Microsoft Windows NT Server 4.0 Resource Kit içinde de hata
bulma/giderme konusunda yararlanabileceğiniz çeşitli araçlar var. (NT
performans izleme araçlarının bir kısmını Tablo 1’de görebilirsiniz.)
Performans ayarına başlamadan önce sisteminizi
tanımalısınız. Ne çeşit bir donanıma sahip
olduğunuzu, NT’nin nasıl çalıştığını, çalıştırmakta olduğunuz uygulamaları,
sistemi kimin kullandığını, sistemin ne çeşit bir yükle karşı karşıya kaldığını
ve sisteminizin ağa bağlantısını bilmelisiniz. Aynı zamanda tipik çalışma
sürelerinde sistemin kaynaklarını nasıl kullandığını gösteren ve ilerdeki
ölçümlerde karşılaştırma için kullanabileceğiniz bir ölçüm temeli veritabanına
da sahip olmalısınız. (Bu bilgileri de Performance
Monitor ile toparlayabilirsiniz.) Böyle bir
karşılaştırma bilgisi elinizin altında yoksa
NT’nin performansındaki düşmeleri ya da iyileştirmeleri farkedemezsiniz.
Böyle bir temel ölçüm veritabanında mümkün olduğunca fazla nesne (örneğin,
bellek, işlemci, takas dosyası, mantıksal diskler, fiziksel diskler, sunucu
hizmeti, sistem nesnesi, kaşe ve ağ arayüzü nesneleri
gibi) bulundurun. En azından dört ana sistem kaynağı (bellek, işlemci, disk ve
ağ arayüzü), sunucunun işlevi ne olursa olsun (dosya sunucusu, uygulama
sunucusu, etki alanı sunucusu gibi) bu veritabanında bulunmalıdır.
Bir sunucunun dört ana kaynağı birbirleriyle
ilişkili olduğu için bir darboğazı saptamak zor olabilir. Bir sorunu çözmek bir başka soruna yol açabilir. Mümkün
olduğunca herhangi bir zamanda tek bir değişiklik yapın, sonucu temel
veritabanı ile karşılaştırın ve değişikliğin işe yarayıp yaramadığını saptayın. Bir karşılaştırma yapmadan önce birden fazla değişiklik yaparsanız
neyin işe yarayıp neyin işe yaramadığını bilemezsiniz. Her zaman yeni
sistem düzenini test edin ve bu yeniliğin performansı olumsuz etkileyip etkilemediğini saptayın. Ek olarak, yaptığınız her
değişikliği ve bu değişikliğin sonuçlarını bir kenara not edin.
Bellek
NT Server’da gözlenen darboğazların nedeni çoğu zaman
yetersiz bellektir. Bellek yetersizliği, kendisini, aşırı meşgul bir CPU ya da yavaş
disk I/O’su şeklinde gizleyebilir. Bellek
yetersizliğinin birinci ve en iyi göstergesi hard page fault oranının sürekli
yüksek (örneğin, saniyede beşten fazla) olmasıdır. Bir
program, gereksindiği veriyi fiziksel bellekte bulamazsa ve bu yüzden veriyi
sabit diskten okumak zorunda kalırsa bir “hard page fault” oluşur.
Sisteminizin RAM yetersizliği çekip çekmediğini
saptamak için Performance Monitor’ı kullanabilirsiniz. Sistemin bellek
durumunu gözlemek için aşağıdaki sayaçlar çok değerli olacaktır:
• Memory: Pages/sec—RAM’de
bulunmayan, dolayısıyla diskten alınması gereken bellek sayfaları ile RAM’de
yer açmak için diske
aktarılması gereken bellek sayfalarının sayısını gösterir.
• Memory: Available Bytes—Programların kullanabileceği fiziksel bellek
miktarını gösterir. Bu değer genelde düşüktür. Çünkü
NT’nin Disk Cache Manager (Disk Kaşesi Yöneticisi) diskteki bilgileri kaşeleme
için RAM belleğin
bir bölümünü kullanır. İşi bitince kaşeleme için ayrılan
bellek alanı azaltılır.
• Memory: Committed
Bytes—Sistemin fiziksel RAM ve diskteki pagefile.sys alanında kullandığı toplam
bellek miktarını gösterir. RAM yeterli ise bu sayaç RAM miktarını aşmayacaktır.
RAM yetersizliği görülüyorsa diskteki pagefile.sys dosyasından bölümler de
kullanılacak ve bu sayacın değeri RAM değerini aşacaktır. Sonuncu
durumda büyük olasılıkla RAM eklemek gerekecektir.
• Memory: Pool Nonpaged
Bytes— İşletim sistemi bileşenlerinin yer aldığı sayfalanmayan havuzdaki sistem
belleği alanında yer alan (nonpaged pool system memory
area) RAM miktarını gösterir.
• Paging File: %Usage— Bu
sayaç sistemin o ana kadar pagefile.sys dosyasından en
çok ne kadar kullanmış olduğunu
gösterir.
NT Server’a sisteminizde bulunan belleği doğru bir
şekilde ayarlamasını söyleyebilirsiniz. Control
Panel’den Network uygulamasına, oradan da Services sekmesine geçin ve Server’ı
seçin. Properties’e tıkladığınızda karşınıza, Şekil 3’de gösterildiği
gibi dört seçenekli bir diyalog kutusu çıkacaktır: Minimize Memory Used (Kullanılan Belleği En
Azda Tut), Balance (Dengele), Maximize Throughput for File Sharing (Sistemi
Dosya Paylaşımı İçin En İyile) ve Maximize Throughput for Network Applications
(Sistemi Ağ Uygulamaları İçin En İyile). Ayarlayabileceğiniz
bir başka parametre de System Properties diyalog kutusundaki Performance
sekmesinde yer alıyor. Bu parametre virtual memory
subsystem (sanal bellek altsistemi), yani pagefile.sys dosyası bilgisini
gösterir.
Maximize Throughput for Network Applications seçeneğini seçtiğinizde NT
Server dosya sistemi kaşesine daha az bellek ayırır. Bu şekilde bilgisayarda çalışan uygulamalar daha fazla bellek
kullanma olanağı bulurlar. Bu seçenek bellek kaşesi
kullanan dağıtık uygulamalar için sunucu belleğini en iyiler. Microsoft
SQL Server ve Exchange Server gibi uygulamaları ayarlayarak onların belli
miktarlarda RAM’i, disk I/O’su için ve veritabanı kaşelemesi için
kullanmalarını sağlayabilirsiniz.
Bellek darboğazlarını gidermenin bir yolu olarak
pagefile.sys dosyasının büyüklüğünü arttırabilir ya da dosyayı birden fazla
diske dağıtabilirsiniz.
Bunların yanısıra başka şeyler de önereceğim. Örneğin, yoğun bellek kullanan uygulamaları bir makinada toplamak
yerine birkaç makinaya dağıtmak gibi. Kayıt (Registry)
üzerinde oynayarak NT sunucunun 256KB’dan daha fazla ikincil düzey kaşe bellek
kullanmasını da sağlayabilirsiniz. Regedit.exe’yi çalıştırın,
HKEY_LOCAL_
MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\Memory Management altanahtarına gidin ve SecondLevelDataCache değerinin
üzerine çift tıklayın, sahip olduğunuz ikincil düzey kaşe miktarını girin
(örneğin, 512KB’lik bir değer söz konusu ise 512 rakamını girin). OK’e tıklayın,
Kayıt düzenleyicisini
kapatın ve sistemi yeniden başlatın. Gereksiz hizmetleri, aygıt
sürücülerini ve ağ protokollerini de kaldırmanızı
öneririm.
İşlemci
NT Server makinasında bir işlemci darboğazının olup
olmadığını saptamak için önce sistemde bir bellek darboğazı olmadığından emin
olun. CPU darboğazları yalnızca işlemci, gelen isteklere yanıt veremeyecek kadar meşgul olduğu zaman ortaya çıkar. Bu durumun
göstergeleri işlemci meşguliyet oranının yüksek olması, komut kuyruklarının hep
uzaması ve uygulamaların yanıt sürelerinin uzamasıdır. CPU’ya dayanan uygulamalar
ve sürücüler ile aşırı şekilde üretilen kesintiler (interrupt) CPU darboğazına neden olurlar.
Sisteminizdeki CPU kullanımını gözlemek için aşağıdaki sayaçları
kullanabilirsiniz:
• Processor: % Processor
Time—İşlemcinin programları çalıştırma için geçirdiği sürenin bir ölçüsüdür. Başka bir deyişle, CPU’nun boş oturmadığı zamanların.
• Processor: % Privileged
Time—CPU’nun işletim sistemi hizmetleri için ayırdığı zamanı gösterir.
• Processor: % User
Time—CPU’nun uygulamalar (Word ve Excell gibi) ve altsistemler için harcadığı
zamanı gösterir. Bu sayaç için sağlıklı değerler yüzde 75 ya
da altıdır.
• Processor:
Interrupts/sec— İşlemcinin hizmet verdiği kesintilerin sayısını gösterir. Kesintiler uygulamalar ya da donanım bileşenleri tarafından
üretilir. Kesinti oranı disk I/O’suna, saniyedeki işlem sayısına ve
saniyedeki ağ paketlerinin sayısına bağlıdır. Hızlı işlemciler daha çok sayıda kesintiyi işleyebilirler. Günümüzdeki CPU’lar genel olarak saniyede 1500 kesintiyi
işleyebilirler.
• Process: % Processor
Time—Bir prosesin ne kadarlık işlemci zamanı harcadığını gösterir. Hangi prosesin CPU’yü en çok meşgul ettiğini göstermesi açısından
önemlidir.
• System: Processor Queue
Length—İşlemci zamanını kullanabilmek için bekleyen görevlerin sayısı. Çok sayıda program çalıştırıyorsanız bu sayacın değerinin arada
sırada 0’ın üstüne çıktığını görebilirsiniz.
İşlemci darboğazlarını gidermenin bir yolu daha
hızlı bir işlemciye geçmektir (tabii ana kartınız buna izin veriyorsa).
CPU performansını ayarlamanın bir başka yolu da Task Manager’ı
kullanarak en çok CPU zamanı işgal
start /?
Disk
Sisteminizde disk açısından bir darboğaz olup
olmadığını görmek için öncelikle sorunun yetersiz bellekten kaynaklanıp
kaynaklanmadığına emin olun. Disk darboğazı aslında
bellek yetersizliğinin sonucu olan pagefile etkinliğinden kaynaklanıyor
olabilir. Bu durumda
diski değiştirmek değil,
bellekte en çok yer kaplayan uygulamayı bulup incelemek, inceleme
sonucunda anormal bir duruma rastlanmazsa belleği arttırmak darboğazı
giderecektir. Disk etkinliği ile Sanal Bellek Yöneticisinin diske/diskten sayfa
aktarımını daha kolay ayırt edebilmek için
pagefile.sys dosyasını ayrı ve yalnızca bu iş için kullanılan
disklere aktarmak çözüm olacaktır.
Performance Monitor ile diskleri incelemeden önce
diskle ilgili iki nesne arasındaki farkı anlamalısınız. LogicalDisk nesnesi yüksek düzeyli disk öğelerinin performansını
ölçer (örneğin, disk bölümleri-partition gibi). Bu
nesnenin sayaçları hangi bölümün disk etkinliğine neden olduğunu saptamak için
önemlidir. Böylece verileri o bölüm üzerinde bulunan prosesleri saptayıp en çok
disk etkinliğini yaratan uygulamaları da bulabilirsiniz. PhysicalDisk
nesnesi ise diskin tümüne ilişkin bilgileri gösterir.
NT varsayılan olarak disk sayaçlarını
etkinleştirmez; bunları elle sizin etkinleştirmeniz gerekir. Bu sayaçları etkinleştirmek disk altsistemi üzerine yüzde 2 ile 5
arasında yük getirir. Bilgisayarda disk sayaçlarını etkinleştirmek için
komut satırından şu komutu verin:
diskperf -y
Eğer RAID yapısındaki bir diski izliyorsanız
diskperf –ye komutunu vermelisiniz. Sonra da
bilgisayarı yeniden başlatın.
Disk altsistemini analiz etmek için hem both LogicalDisk, hem de PhysicalDisk
nesnelerinde bulunan aşağıdaki sayaçları izleyin:
• % Disk
Time— Diskin ne oranda okuma ve yazma işlemleriyle meşgul olduğunu gösterir.
• Avg. Disk Queue
Length—Beklemekte olan disk I/O isteklerini göstermektedir.
• Avg.
Disk Bytes/Transfer—Gerçek çıktıyı (yani, yazma ya da okuma işlemleri sırasında
diske/diskten aktarılan baytların ortalama miktarını gösterir. Aktarım oranı ne
kadar yüksekse disk altsistemi o kadar verimli
çalışıyor demektir.
• Disk Bytes/sec—Yazma ya
da okuma işlemleri sırasında sistemin diske/diskten ne hızda veri aktardığını
gösterir. Ortalama ne kadar yüksekse sistem o kadar
verimli çalışıyor demektir.
• Current Disk Queue
Length— Kaç disk isteğinin işlenmek üzere beklemekte olduğunu gösterir. Yoğun disk erişimi durumunda isteklerin kuyruğa atılması normaldir;
ama istekler sürekli kuyrukta beklemekteyse diskiniz işlere yetişemiyor
demektir.
Uygulamanız için daha fazla diski aynı anda
kullanmayı da seçebilirsiniz. Şeritlenmiş (striped) bölümler kullanarak
birden fazla diskte aynı anda I/O işlemi yapabilir bu yolla daha hızlı okuma
performansı elde edebilirsiniz. Şeritlenmiş bölümler kullandığınızda her bir
diskin kullanım oranı düşer, sistemin toplam verimi artar ;
çünkü sistem, işleri birden fazla bölüme dağıtmıştır.
Dosya sisteminin atama birimi (allocation unit ya da cluster size)
büyüklüğünü, uygulamanıza
göre ayarlamanız disk aktarımlarının verimliliğini arttıracaktır.
Ama atama biriminin büyüklüğünü arttırmak ya da azaltmak her zaman disk performansını
arttırmaz. Örneğin, disk bölümünde çok sayıda küçük dosya
bulunuyorsa atama birimini küçük seçmek daha verimli olacaktır.
Atama büyüklüğünü iki şekilde değiştirebilirsiniz: Komut satırından format komutu ile ya da Disk
Administrator programı ile. Komut
satırından girilecek komutun yapısı şöyledir:
format <disk>:/FS:NTFS
/A:<atama birimi büyüklüğü>
Disk Administrator’dan yaparkense Tools ve Format seçeneklerini seçin,
sonra da atama birimi büyüklüğünü değiştirin. NTFS, 512 bayt, 1024 bayt, 2048
bayt, 4096 bayt, 8192 bayt, 16KB, 32KB ya da 64KB’lık atama birimi
büyüklüklerini destekler. FAT ise 8192 bayt, 16KB, 32KB, 64KB, 128KB ya da
256KB’lık büyüklükleri destekler.
Ağ Arayüzü (Network Interface)
Bir sistemin belleğini, CPU’sunu ve disk parametrelerini ele aldıktan
sonra sıra ağ altsistemini incelemeye geldi. İstemci
makinalar ve diğer sistemler NT sunucunun ağ
altsistemine hızlıca bağlanabilsinler ki kullanıcılarına
• Network Interface: Output
Queue Length—Bir kartın çıktı paket kuyruğunun uzunluğunu (kaç paketin kuyrukta
beklemekte olduğunu) gösterir. 1 ya da 2 gibi bir değer
• Network Interface: Bytes
Total/sec—Bir karttan geçen bütün ağ trafiğini
(gönderilen ve alınan) ölçer.
• Network Interface: Bytes
Sent/sec—Belirli bir ağ kartından gönderilen baytların
sayısını gösterir.
• Server: Bytes
Total/sec—Sunucunun bütün ağ kartlarından aldığı ve
verdiği baytların sayısını gösterir.
• Server: Logon/sec—Saniye
başına, yerel olarak gerçekleştirilen kullanıcı onayı, ağ üzerinden
gerçekleştirilen kullanıcı onayı ve hizmet hesabı kullanıcı onayı için oturum
açma girişimlerinin sayısını
gösterir. Bu sayaç, etki alanı
denetleyicilerinde ne kadarlık bir kullanıcı onayının gerçekleştiğini
göstermesi açısından yararlıdır.
• Server: Logon Total—
Bilgisayarın açılışından bu yana yerel olarak gerçekleştirilen kullanıcı onayı,
ağ üzerinden gerçekleştirilen kullanıcı onayı ve hizmet hesabı kullanıcı onayı
için oturum açma girişimlerinin sayısını gösterir
Eğer ağ altsisteminin bir darboğaz yaşamakta
olduğunu saptarsanız sorunu çözmek için çeşitli önlemler alabilirsiniz. Ağ
kartını yalnızca kullanımda olan ağ protokolüne bağlayabilirsiniz (binding), ağ
kartlarının en yeni
sürücülerini yükleyebilirsiniz, daha iyi ağ kartları
alabilirsiniz ya da ağı daha alt bölümlere ayırmak için yeni kartlar
ekleyebilirsiniz (bu yolla bölümlerin ağ trafiğini birbirlerinden
yalıtabilirsiniz). Ağı bir bürün olarak düşünüp bütün fiziksel düzeydeki bileşenleri
iyileştirebilirsiniz. İş yükünü sisteme kuracağınız yeni
bilgisayarlara dağıtmayı da seçebilirsiniz.
Bir TCP/IP ağında performansı arttırmak için TCP
pencere büyüklüğünü de ayarlayabilirsiniz. TCP/IP alış penceresi
büyüklüğü sistemin bir ağ bağlantısı üzerinden gelen bilgilerin ne kadarının ara belleğe
aktarılabileceğini gösterir. NT’de pencere büyüklüğü Ethernet
için 8760 bayttır. Bu değer Kayıt içinden
ayarlanabilir. Bunu yapmak için HKEY_
LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpWindowSize altanahtarına
gidip bilgisayar üzerindeki tüm arayüzler için yeni bir değer girebilirsiniz.
Tek bir socket için bu değeri değiştirmek isterseniz setsockopt() adındaki Windows Sockets
fonksiyonunu kullanabilirsiniz. En iyi büyüklük ağ
yapınıza bağlıdır. TCP’de en iyi verim pencere büyüklüğünün ağ
gecikme süresine bölünmesiyle elde edilir.
Son olarak ağ kartlarında Autosense kipini
kullanmayın. Ağ kartlarını tam istediğiniz hıza ayarlayın.
Bu bilgiyi değiştirmek için ağ kartınızla birlikte
gelen yapılandırma programını kullanın.
Ortamınızı Anlama
Performans analizi mantıksal düşünmeyi, test etmeyi
ve biraz da sabrı gerektirir. NT’nin birincil izleme ve
ince ayar araçları sistemlerinizin performansını yönetmede size yardımcı
olacaktır.
Amacınıza ulaşmak için elinizde ne tür sistemler
bulunduğunu, uygulamalarınızın nasıl çalıştığını ve kullanıcıların ağınızı
nasıl kullandığını anlamanız gerekir.
InstantDoc ID 20366
Cris Banson, büyük işletmeler çapındaki ağ
yapıları, depolama ve küresel bağlantı konularında uzmanlaşmış, serbest çalışan
bir yazardır. MCSE ve CNE’dir. Kendisine
cbanson@itref.com adresinden
ulaşabilirsiniz.
ARA METİNLER:
Sisteminizin bellek, CPU, disk ve ağ
arayüzündeki zayıf halkaları sağlamlaştırın.
NT’nin izleme ve ayar araçları sistemlerinizin
performansını yönetmenize olanak sağlar.