Veritabanının performansı ile ilgili karşılaşılan sorunlar direk olarak firmaların verimliliğini olumsuz yönde etkilerken, ciddi maddi kayıplara ve işgücü kaybına neden olmaktadır. Dolayısıyla veritabanı yöneticileri proaktif olarak performans sorunlarını takip edebilmeli ve herhangi bir darboğaz oluşmaması için bu sorunları hızlı bir şekilde çözebilmelidir.
Sağlıklı bir yapıda SQL Server ve işletim sistemi metriklerinin gerçek zamanlı olarak takip edilmesinin yanı sıra geçmişe dönük olarak da saklanması ve analizinin yapılması gerekir. Bununla beraber veritabanı üzerinde yapılmış olan kritik değişikliklerin de kayıt altında tutulup, bu değişikliklerin ne zaman yapıldığı ve önceki değer ve son değer bilgisinin ne olduğunun da karşılaştırması yapılabilmelidir. Herhangi bir araç kullanılmadığı takdirde efektif olarak bu işi yapabilmek veritabanı yöneticilerinin büyük bir zamanını alacaktır. Quest firmasının ürünü olan Foglight Performance Analysis for SQL Server ürünü ise bu ihtiyaçların karşılanmasında, veritabanı yöneticilerine yardımcı olacak bir üründür.
Foglight Performance Analysis ürününün mimarisi:
Foglight Performance Analysis ürününün mimarisine baktığımız zaman 4 temel bileşenden bahsedebiliriz.
1. İzlenecek olan SQL server makinasında çalışacak olan ajan
2. Ajan tarafından toplanacak performans bilgilerin tutulduğu bileşen
3. Tavsiyeler, değişiklik yönetimi ve lock analizi için gerekli bilgilerin tutulduğu bir SQL Server veritabanı
4. Toplanan bilgileri görüntülemek için kullanılan arayüz ekranı
Foglight Performance Analysis ürününün ajanı patentli bir teknolojiye sahip olup diğer izleme yazılımlarından farklı kılan mimarisi ile izlenen veritabanına bir yük getirmeden veritabanı ve işletim sistemine ait bilgilerin toplanması için kullanılır. Bir Windows servisi olarak çalışan bu ajan direk olarak işletim sistemi düzeyinde çalışır ve bilgileri SQL Server’dan değil Windows memory’den okur. Bu sayede veritabanına getireceği yük minimumda tutulmuş olur. Bir diğer önemli özelliği ise her saniye 50 örnek veri toplamaya uygun olan mimarisidir. Genellikle izleme çözümleri 2 dakika, 5 dakika gibi belli periyotlarda veritabanına bağlanıp bilgi çekerler oysaki Foglight Performance Analysis ajanı her saniye bilgi topladığı için komple resmi herhangi bir bilgiyi kaçırmadan verebilir.
Bilgiler toplandıktan sonra bunlar bir disk alanı üzerinde tutulur, diskte tutulmasının avantajı ile bu bilgiler sıkıştırılmış olarak saklanabilir. Bu disk alanını izlediğiniz SQL Server makinası üzerinde tutabileceğiniz gibi ayrı bir makinada da tutulması sağlanabilir. Özellikle birden çok SQL Server izlenecek olursa tüm bilgilerin tek bir noktada tutulması tavsiye edilir.
Tespit edilen problemler için tavsiyeler, değişiklik yönetimi ve lock analizi ile ilgil bilgiler de görüntülenmek isteniyorsa bunların ayrı bir SQL Server üzerinde tutulması gerekecektir. Bu özellikler opsiyonel olarak eklenen özelliklerdir ve kullanılması düşünülüyorsa bu iş için ayrı bir SQL Server instance’i kullanılması tavsiye edilir.
Toplanan bilgilerin görüntülenmesi ve analizinin yapılabilmesi için kullanılan arayüz herhangi bir PC’ye kurulabilir. Arayüzden bilgileri görüntüleyebilmek için bilgilerin tutulduğu sunucu ile arayüzün kurulu olduğu PC arasında 3566 nolu portun açık olması gerekir. 3566 nolu port kurulum sırasında default olarak gelen port olmakla beraber istendiği takdirde başka bir port kullanması da sağlanabilir.
Ürün Özellikleri
Ana Ekran:
Performance Analysis ürününün ana ekranında son 5 dakikadan son 24 saate kadar olan süre içerisindeki SQL Server’ın genel işyükünü, bu işyükünün yüzde olarak bileşenler(CPU Usage, CPU Wait, Disk I/O, Memory, Network, Lock, Latch, Log, CLR, Remote Provider,Other) üzerindeki dağılımını bulabilirsiniz. Yine aynı ekranda işletim sistemi bazında sistem kullanım değerlerinizi de görmek mümkündür. Bu ekranda gösterilen değerler olması gereken değerlerin altında ise yeşil, değil ise önem derecesine göre sarı, turuncu veya kırmızı olarak gösterilir. Örneğin SQL Server Performance başlığı altında görebileceğiniz gibi CPU kullanımı toplam işyükününün %30’u ve normal değerindeyken, Network toplam işyükünün %46’sına neden olmaktadır ve turuncu olarak gösterilmiştir. İstenildiği takdirde problemli olan bileşen üstüne basılarak bu kaynak ile ilgili detaylı bilgilere ulaşmak mümkündür.
Real-Time Ekranı:
Bu ekranda gerçek zamanlı bilgileri ya da son 1 saate kadar olan bilgileri görebilirsiniz. Farklı renklerle gösterilen SQL Server metriklerine göre kaynak kullanım değerlerini görebilir, ikinci grafik ekranında da seçilmiş olan kaynağın o zaman dilimindeki dağılımını detaylı olarak inceleyebilirsiniz.
History Ekranı:
Geçmişe dönük bilgileri görüntüleyebileceğiniz bu ekran SQL Server veritabanı performansının analizini detaylı olarak yapmanıza imkân vermektedir. Ekranın sol tarafındaki bölümde farklı bileşenlere göre kaynak kullanım değerlerini görebilirsiniz. En çok SQL cümleciklerinin performanslarının sorgulanması yapılsa da isterseniz veritabanları, programlar, işletim sistemi kullanıcıları, istemci makinalar, veritabanı kullanıcıları bazında da bu sorgulamayı yapabilirsiniz. Bu sayede sisteminizde en fazla performans sorununa neden olan kullanıcıları ya da programları kolayca tespit edebilirsiniz.
Grafikleri incelediğimiz zaman sistemde Network’den kaynaklanan normalin üzerinde bir bekleme olduğunu kolayca görebiliyoruz. Foglight Performance Analysis ürününün arayüzünü kullanarak Network Wait’e göre sıralama yaparak da bu probleme neden olan SQL cümleciklerini görebiliriz. Herhangi bir SQL cümleciğinin üstüne fare ile geldiğinizde tüm cümleciği görüntüleyebilirsiniz ya da ilgili cümleciğin üstündeyken sağ tuş ile “View SQL” seçeneğini kullanarak da görüntüleme şansınız olabilir.
Bulduğumuz bu SQL cümleciği ile ilgili daha detaylı bilgilere yine aynı ekrandan ulaşabilirsiniz. Aşağıdaki ekranda sol tarafataki bölüme bakacak olursanız seçtiğimiz cümleciğin hangi veritabanında, hangi program, hangi kullanıcı, hangi istemci makina tarafından çalıştığı bilgilerini de görebilirsiniz.
Değişiklik Takibi:
Performans sorunlarının çözülmesinde önemli etkenlerden bir tanesi de değişiklik takibinin yapılabilmesidir. Veritabanı konfigürasyonundaki bir değişiklik ya da var olan bir objenin örneğin bir index’in silinmesi sisteminizde ciddi performans sorunlarına neden olabilir. Foglight Performance Analysis ürünü size bu değişiklikleri takip etme imkânı da vermektedir. Bu sayede hangi tarihte, hangi değişiklik yapılmış, varsa eski değeri ve yeni değerinin karşılaştırmasını da yapabilirsiniz.
Performans Tavsiyeleri:
Foglight Performance Analysis ürünü toplamış olduğu bilgiler çerçevesinde veritanı performansınızın iyileştirilmesi adına belli kriterlere bakarak bir problem tespit etmesi neticesinde size uyarılarda verebilir.
Bu uyarıların detaylarını veritabanına ait spesifik bilgiler eşliğinde size verecektir. Aşağıdaki ekranda görülebileceği üzere hangi SQL cümleciklerinin yüksek I/O ve CPU kullanımına sebep olduğu ve hangi objeler üzerinde bu cümleciklerin çalıştığı bilgisini detaylı istatistiklerle size sunarken çözümü için neler yapılması gerektiği bilgisini de verecektir.
Karşılaştırma:
Ürün ile beraber sunulan imkanlardan bir tanesi de karşılaştırma özelliği ile değişik zaman dilimlerini karşılaştırarak hangi bileşenlerin performasınızda ne tür etkilerinin olduğunu görebilmenizdir. Aşağıdaki ekranlarda 30 Haziran saat 16:00–17:00 arası ile 18 Kasım saat 16:00–17:00 arası karşılaştırılmış hangi kaynaklarda ne kadar artış veya azalma olduğu listelenmiştir. İstenirse herhangi bir kaynak seçilerek bununla ilgili detaylara da ulaşılabilir. I/O wait seçildiği takdirde hangi veritabanlarında bunun gerçekleştiği, hangi kullanıcılar, hangi programlar tarafından bu farklılıkların oluştuğu da listelenebilir.
Lock Analizi:
Veritabanı performansında önemli sorunlardan bir tanesi de oluşan locklar ve bunun sebep olduğu sorunlardır. Foglight Performance Analysis ürünü bu tür sorunların analizi içinde ayrı bir özellik sunmaktadır. Hangi SQL cümlecikleri lock’a sebep oluyor, bunu çalıştıran bileşenler nelerdir ve bunlardan dolayı neler bekliyor bilgisine ulaşabilirsiniz.
Veritabanı performans sorunlarında en önemli ve zor olan bölüm sorunun nerede olduğunu tespit etmektir. Herhangi bir performans sorunu yaşandığı takdirde yapılan en büyük yanlışlardan biri hemen donanım arttırımına gitmek olacaktır. Sorunun tam olarak nereden kaynaklandığını bilmeden yapılan bu yatırımlar boşa yapılmış yatırımlardır, CPU veya Memory’de herhangi bir bekleme yoksa siz kaç tane CPU eklesenizde, RAM’i ne kadar arttırsanız da sorunlar da bir iyileşme olmayacaktır. Oysa tüm resmi görerek çok basit çözümlerle performans sorunlarınızı ortadan kaldırabilirsiniz. Arka planda çalışan işlerden bir tanesi lock oluşmasına sebep veriyor olabilir, kullandığınız indexlerden biri bozulmuş ya da yanlışlıkla silinmiş olabilir, data ve log dosyaları aynı disk üzerinde tutulduğu için I/O kullanımında sorun olabilir ya da sistemde latch bekleme zamanı çok yüksek değerlerde olabilir ve buna neden olan SQL cümleciklerinin optimizasyonu gerekebilir. Foglight Performance Analysis for SQL Server ürünü size tüm resmi gösterirken, sorunları kolaylıkla tespit etmenize yardımcı olur, aynı zamanda da bu sorunlar için çözüm önerilerinde de bulunur. Unutulmamalı ki performans iyileştirme bir kez yapılacak bir iş değildir, hızla gelişen teknolojiler, veri miktarının artması, yeni uygulamaların devreye alınması gibi süreçler karşısında veritabanı performansı sürekli olarak gözlemlenmeli ve takip edilmelidir.