Hoþgeldiniz           
   
"SQL Server baþvuru kaynaðýnýz"
Skip Navigation Links
=========
Anasayfa
Makaleler
Hatalar \ Çözümler
Duyurular
Diðer
Ýpuçlarý
Yararlý Adresler
Mesaj TahtasýExpand Mesaj Tahtasý
HakkýmdaExpand Hakkýmda
Ýletiþim
Kullanýcý Adý:
Þifre:
 

Ne Mutlu Türküm Diyene!

SQL Server ile ilgili soru sormak için buraya týklayýn!


Yazýlarýmý nasýl buluyorunuz?






En Son SQL Server ile Ýlgili Okuduðum Kitaplar
- Inside Microsoft SQL Server 2005: Query Tuning and Optimization - MS Press (Ýngilizce)
- Accelerated SQL Server 2008 - Apress (Ýngilizce)
- Designing and Optimizing Data Access by Using SQL Server 2005 - MS Press (Ýngilizce)
- Microsoft SQL Server 2005 Database Solutions Design - Wiley Publishing (Ýngilizce)- Optimizing and Maintaining a Database Administration Solution by Using SQL Server 2005 - MS Press (Ýngilizce)- Designing a Database Server Infrastructure Using SQL Server 2005 - MS Press (Ýngilizce)- SQL Server 2005 Implementation and Maintenance - MS Press (Ýngilizce)
- SQL Server 2005 Administrators Companion - MS Press (Ýngilizce)


              
Disk Kullanýmýný Ýzlemek 

Son güncelleme tarihi: 18 Mart 2007
  


Merhaba arkadaþlar,


Veritabaný yöneticileri olarak bizlerin sýrtýndaki en aðýr yüklerden biri de performansýn her zaman mümkün olduðunda en iyi þekilde kalmasýný saðlamaktýr. Bu nedenle sürekli sistemi gözlemlemeli, gerekli analizleri yapmalý ve geleceðe yönelik tespitlerde bulunmalýyýz. Bu sayede, ileride iþ yükünün artmasýyla birlikte karþýlaþacaðýmýz sorunlarý önceden görmüþ oluruz ve buna göre tedbirler almýþ oluruz.

Gerçek hayat öyküsü
Büyük bir þirket, SQL Server Failover Cluster ve Active Directory + Exchange Server sistemlerini kurmamýz için bize baþvurdu. Tahmin edeceðiniz gibi iþin SQL Server tarafý bana aitti. Projeyi bitirdik, teslim ettik. Bu arada analizler yaptým, þimdiki ve önlerindeki bir kaç aya dair bir de sonuç raporu çýkartarak kendilerine teslim ettim. Öngördüðüm tüm sorunlarla da karþýlaþtýlar. Çünkü bu kaçýnýlmazdý. Önceden kendilerine yaþayacaklarý sorunlarý gösterdiðim halde herhangi bir önlem almadýlar. Sonucunda da gene yanlýþ kararlar verip, yanlýþ yatýrýmlar yaptýklarýný öðrendim. Ama maalesef, bazý þirketler hâlâ profesyonelce çalýþmamakta diretiyor ve uðradýklarý zararlar, alacaklarý önlemler için yapacaklarý yatýrýmdan daha maliyetli oluyor...

Giriþ
Makale baþlýðýnda da belirttiðim gibi, bu makalede size diskinizde geliþen etkinlikleri nasýl izleyeceðiniz hakkýnda bilgi vereceðim. Ýþlemci ve Hafýza konularýndaki makaleleri de baþka baþlýklar altýnda bulabileceksiniz.

SQL Server, diskinizdeki okuma ve yazma iþlemleri için Windows iþletim sisteminin giriþ\çýkýþ çaðrýlarýný uygular. Bu giriþ\çýkýþ iþlemlerinin yönetim tarafýný SQL Server halleder, fakat iþi Windows yapar. Bir sistemde yaþayacaðýnýz performans sorunu büyük ihtimalle giriþ\çýkýþ iþlemlerinden kaynaklanýyor olacaktýr. Peki nedir bu giriþ\çýkýþ iþlemleri? Þunlardýr: Sistem Yolu (System Bus), Disk Kontrol Kartlarý (Disk Controller Cards), Diskler, Teyp Sürücüleri, CD-ROM sürücüleri ve diðer giriþ\çýkýþ iþlemi yapan aygýtlar.

Sisteminizde geliþen bu olaylarý ise System Monitor adý verilen ve Windows iþletim sistemi ile birlikte gelen araç ile izleyebilirsiniz. Bu araç SQL Server ile birlikte kurulmaz, fakat SQL Server kurulurken System Monitor ile birlikte kullanabileceðimiz yeni sayaçlar da ekler. Bahsini ettiðim sayaçlar ve konumuzla ilgisi olmayan diðerleri bu makalede konu dýþý olduðu için onlara deðinmeyeceðim.

Disklerimizde gerçekleþen etkinlikleri iki ana dala ayýrabiliriz:

   - Disk giriþ\çýkýþýný izlemek ve fazla sayfalamayý (paging) algýlamak
   - SQL Server' ýn neden olduðu disk etkinliklerini ayýklamak

Disk giriþ\çýkýþýný izlemek ve fazla sayfalamayý (paging) algýlamak
Disk etkinliðini izlemek için aþaðýdaki iki sayacý kullanabilirsiniz.

         - PhysicalDisk: % Disk Time
         - PhysicalDisk: Avg. Disk Queue Length

"PhysicalDisk: % Disk Time" sayacý, diskin okuma\yazma ile meþgul olma yüzdesini verir. Eðer "PhysicalDisk: % Disk Time" sayacý yüksekse (%90' dan fazla), o zaman kaç tane sistem isteðinin sýrada beklediðini görmek için "PhysicalDisk: Avg. Disk Queue Length" sayacýný kontrol edin. Girdi\çýktý isteklerinin sayýsý (diskteki mil sayýsý baþýna) 1.5 - 2' yi geçmemelidir. Çoðu diskin bir mili vardýr, fakat RAID cihazlarýnýn genellikle birden fazla mili vardýr. bir RAID cihazý System Monitor' de tek bir fiziksel disk olarak görünür. Yazýlýmla yapýlan RAID cihazlarý System Monitor' de çoklu olarak görünür.

Sisteminizdeki disk sistemleriyle ilgili performans sorunlarýný belirlemek için "% Disk Time" ve "Current Disk Queue Length" sayaçlarýnýn verdikleri deðerleri kullanýn. Eðer bu deðerler sürekli yüksekse o zaman disk sistemiyle ilgili bir performans sorunu yaþýyorsunuz demektir. Bu durumda ise, aþaðýdaki çözümlerden birini uygulamayý düþünebilirsiniz:

         - Daha hýzlý bir disk sürücü kullanmak
         - Bazý dosyalarý baþka fiziksel sürücülere veya sunucuya taþýmak
         - Eðer RAID kullanýyorsanýz, RAID dizisine yeni diskler eklemek

Eðer RAID cihazýný kullanýyorsanýz "% Disk Time" sayacý %100' den fazla bir deðer gösterebilir. Eðer böyle bir þey olursa o zaman ortalama kaç sistem isteði olduðunu görmek için "PhysicalDisk: Avg. Disk Queue Length" sayacýný kullanýn.

Giriþ\çýkýþ iþlemleri aðýrlýklý olan uygulamalar ve sistemler disklerinizi sürekli meþgul edebilirler.

Disk iþlemlerinin sayfalamadan (paging) kaynaklanmadýðýndan emin olmak için de "Memory: Page Faults/sec" sayacýný kullanabilirsiniz.

Windows' ta, sayfalama aþaðýdaki nedenlerden kaynaklanabilir:

         - Çok fazla hafýza kullanmak için yapýlandýrýlan iþlemler
         - Dosya sistemi etkinlikleri

Eðer ayný sabit diskte birden fazla mantýksal bölüm varsa, "Physical Disk" sayaçlarýnýn yerine "Logical Disk" sayaçlarýný kullanýn. Hangi dosyalarýn daha sýk kullanýldýðýný belirlemeye yardýmcý olmasý için mantýksal disk sayaçlarýna bakýn. Büyük ölçüde okuma\yazma iþlemlerinin yapýldýðý diskleri bulduktan sonra, her mantýksal sürücüdeki yoðun etkinliðin okumadan mý yoksa yazmadan mý kaynaklandýðýný öðrenmek için okumaya ve yazmaya yönelik sayaçlarý kullanýn. Meselâ "Logical Disk: Disk Write Bytes/sec." gibi. Bu sayaç ile seçtiðiniz mantýksal sürücüde her saniyede gerçekleþen diske yazma iþleminin deðerlerini alabilirsiniz.


SQL Server' ýn neden olduðu disk etkinliklerini ayýklamak
SQL Server bileþenlerinin neden olduðu giriþ\çýkýþ iþlemlerinin miktarýný aþaðýdaki iki sayaç ile izleyebilirsiniz:

         - SQL Server: Buffer Manager: Page reads/sec
         - SQL Server: Buffer Manager: Page writes/sec

Eðer bu sayaçlarýn verdikleri deðerler donanýmsal olarak giriþ\çýkýþ iþlemlerinin kapasite sýnýrýna yaklaþýrsa, giriþ\çýkýþ iþlemlerini azaltmayý denemek için uygulamanýzý ve veritabanýnýzý gözden geçirin. Meselâ daha iyi Index' ler veya Normalizasyon kullanabilirsiniz, disk donanýmýnýzýn giriþ\çýkýþ kapasitesini arttýrabilir veya da daha fazla hafýza ekleyebilirsiniz. Veritabanýnýz hakkýnda bir analiz yapmak için SQL Server 2005 Standard ve Enterprise Edition ile birlikte gelen Database Tuning Advisor' ý kullanabilirsiniz.

RAID' ler
RAID sistemlere de çok özetle deðinmeden geçemeyeceðim, çünkü bu konuda habergruplarýndan çok soru geliyor. RAID' lerin yapýlarýný anlatmayacaðým, ama genel kurallardan bahsedeceðim. Kullanacaðýnýz RAID sistemi de giriþ\çýkýþ iþlemlerini doðrudan etkiler. Bazý arkadaþlar þuna benzer sorular soruyor: "5 tane diskimiz var, hangi RAID' i kursak daha iyi olur?".

Maalesef buna cevap vermek çok zor, çünkü önce RAID kurulmaz. Önce sistem incelenir, hangi iþlemler daha aðýrlýklý, okuma mý yoksa yazma mý. Yeterli disk var mý? Eðer varsa ve güçlü bir SQL Server gerekiyorsa, o zaman ideal olaný veritabanýna ait veri ve kayýt dosyalarýný ayýrmaktýr. Kayýt (Transaction Log) dosyalarýna daha ziyade yazma iþlemi yapýlýr. Yazma iþlemleri için en uygun RAID ise RAID1' dir. Böylece hem otomatik yedeklemeniz olur, hem de bir diskinizin bozulmasý sisteminizin çökmesine neden olmaz.

Veri dosyalarý için ise duruma göre RAID-5 veya RAID-10 önerilir. Neden "duruma göre" dedim? Çünkü bunun duruma göre deðiþtiðini gördüm. RAID-5 okuma için iyidir, RAID-10 ise yazma\okuma iþlemlerinin karýþýk yapýldýðý ortamlara en uygun RAID' tir. Ýki RAID' le de sisteminiz yedekli ve güvenilir çalýþýr (Redundancy).

Bunlar genel kanýdýr, genelde de doðrudur. Fakat doðru olmadýklarý yerleri de gördüm. Farklý kiþilerin farklý ortamlarda yaptýklarý analiz raporlarýnda, bazý donanýmlarda RAID-5 ile daha iyi sonuç alýndýðýna þahit oldum. Bu nedenle düz mantýk kararlar vermeden önce, eðer imkânýnýz varsa donanýmlarýnýzda RAID testleri yapmanýzý tavsiye ederim.

Özet
System Monitor' de, bu makalede söz ettiðimden çok çok daha fazla sayaç bulunmaktadýr. Bu sayaçlarý çeþitli amaçlar için kullanabilirsiniz. Sistem Monitor içerisinde her sayaca ait kýsa bir açýklama da bulunmaktadýr. Sayaçlarý kurcalamanýzý tavsiye ederim. Çok yararlý bir araç, sisteminizde performans sýkýntýsý yaþadýðýnýzda ilk baþvuracaðýnýz temel araçlardandýr.

RAID' leri daha iyi anlayabilmek için doðrudan RAID' ler hakkýnda yazýlan makaleleri okumanýzý öneririm. Böylece, RAID' lerin yapýlarý hakkýnda daha fazla bilgi edinmiþ olursunuz. Tabi RAID için kullanýlan donanýmlar hakkýnda da fikirler edinirsiniz.

 

Ekrem Önsoy

Yardýmcý Kaynak: BOL

Anasayfa


 
Bu sitenin tüm haklarý, Ekrem Önsoy' a aittir.