Merhaba,
Bu bölümde Postgres günlüklerinin nasıl analiz edileceği ve vCSA’nın veritabanında hata ayıklamak için pg_top komutunun nasıl kullanılacağınızın bilgisin paylaşacağım.
Postgres günlük dosyalarını listelemek için PuTTY penceresinde aşağıdaki komutları çalıştırın,
- cd /var/log/vmware/vpostgres/
- ls -l postgresql-*
Numaralandırılmış her günlük dosyasının ayın farklı bir gününe ait olduğunu unutmayın; örneğin yukarıdaki postgresql-01.log 1 Şubat’a ait veritabanı günlük girişlerini içermektedir.
Örneğin hangi SQL sorgularının bir saniyeden (1.000 ms) daha uzun sürdüğünü görmek için ‘duration’ dizesini içeren günlük girdilerini arayalım.
- grep duration postgres*
Bir sorun olduğundan şüphelendiğimizde veritabanı performansına nasıl bakarız?
pg_top‘a bakacağız.
- cd /opt/vmware/vpostgres/current/bin/
- ./pg_top -U postgres -d VCDB
Eğer top (Linux performans izleme aracı) veya esxtop (ESXi için eşdeğer) programlarına aşinaysanız, pg_top’un benzer bir görünüme sahip olduğunu fark edeceksiniz.
Varsayılan pg_top ekranı size bir genel bilgi verir. Genel bakış bölmesi PostgreSQL veritabanınızın (VCDB) o anda tükettiği CPU ve bellek kaynaklarını ölçer (ekranın üst yarısı); görev bölmesi (alt yarısı) size en çok CPU kaynağı tüketen işlemleri gösterir.
CPU aktivitesi hiçbir zaman %70’ten fazla olmamalıdır. pg_top varsayılan olarak verilerini her saniye yeniler.
Bu otomatik yenilemeyi duraklatmak için “p” tuşuna basın; alternatif olarak, daha düşük bir yenileme hızı ayarlamak için “s” tuşuna basın ve ardından ekran yenilemeleri arasındaki saniye sayısını girin.
Yardım menüsünü görmek için “h” tuşuna basın. Yardım menüsü pg_top’tan sütunların nasıl ekleneceğini, kaldırılacağını ve yeniden sıralanacağını açıklar. Çıkmak için “q” tuşuna basın. pg_top’un yük altındayken nasıl göründüğünü görelim.
pg_top’un başka bir ekran görüntüsü, ancak PostgreSQL veritabanı CPU yoğun bir sorgu çalıştırırken. Burada dikkat edilmesi gereken bazı şeyler var:
- Bu işlem için CPU %97,79’dur (çok yüksek)
- Bu işlem için PID 3063’tür (sorgu ayrıntılarını göstermek için “Q” komutu kullanılırken girilir)
- Bu işlem için DURUM “run “dır, yani işlem hala çalışmaktadır (diğer işlemlerin “uyku” durumunda olduğuna dikkat edin)
- Bu komut “DECLARE CURSOR” içerir; CURSOR genellikle istatistik tablosunda bir sorgu anlamına gelir.
Umarım Faydalı Olmuştur..