PostgreSQL performans ayarı
pg_stat_statements, auto_explain ve pgbench ile darboğazları ölçer; bellek, checkpoint, autovacuum ve paralel sorgu ayarlarını iş yüküne göre yapar, planları iyileştirirsin.
Seviye 401 · 18 ders · 15 pratik lab
Dersler
Ölçmek
- pgbench ile taban ölçüm
- pg_stat_statements ile en pahalı sorgular
- auto_explain ile yavaş planları yakalamak
- Bekleme olayları
- EXPLAIN (ANALYZE, BUFFERS) okumak
- Kısa görev: en pahalı beş sorguyu bul ve açıkla
Sunucu ayarları
- shared_buffers, work_mem ve effective_cache_size
- Checkpoint ve WAL ayarları
- Autovacuum ayarı ve tabloya özel ayarlar
- Paralel sorgu
- Planlayıcı maliyetleri ve istatistik hedefi
- Kısa görev: yazma ağırlıklı bir yük için ayar
Plan ve şema
- Genişletilmiş istatistikler
- Yalnız indeks taraması ve görünürlük haritası
- BRIN ve bloom indeksleri
- Bölüm budama
- Kilit çekişmesi ve uzun işlemler
- Bitirme görevi: kampanya gününde yavaşlayan veritabanı
Pratik lablar
- En pahalı beş sorguyu listele: pg_stat_statements'tan toplam süreye göre en pahalı beş sorguyu çağrı sayısı ve ortalamasıyla getir.
- Yavaş planları otomatik yakala: auto_explain ile iki saniyeyi aşan sorguların planlarını günlüğe düşür ve birini yorumla.
- Bekleme olaylarından darboğazı çıkar: Yük altında pg_stat_activity'den bekleme olaylarını örnekleyip sunucunun neyi beklediğini raporla.
- BUFFERS çıktısında disk okumasını bul: EXPLAIN (ANALYZE, BUFFERS) ile ilk ve ikinci çalıştırmada okunan ve önbellekten gelen blokları karşılaştır.
- Diske taşan sıralamayı bellekte tut: Plandaki diske taşan sıralamayı bul ve oturum düzeyinde work_mem ile belleğe sığdır.
- Yanlış tahminli birleştirmeyi düzelt: İlişkili iki sütun yüzünden satır tahmini çöken sorguyu genişletilmiş istatistikle düzelt.
- Bellek ayarlarını sunucuya göre hesapla: 16 GB bellekli sunucu için shared_buffers, effective_cache_size ve work_mem değerlerini gerekçeleriyle belirle.
- Sık denetim noktası uyarısını gider: Günlükteki çok sık denetim noktası uyarısını max_wal_size ile gider ve yazma tepelerini ölç.
- Yazma ağırlıklı iş yükünü ayarla: Nehir Enerji'nin sayaç verisi yükünde WAL, denetim noktası ve commit ayarlarını değiştirip pgbench ile kazancı kanıtla.
- Ölü satır birikimini izle: Yoğun güncellenen tabloda ölü satır sayısını ve son autovacuum zamanını istatistik görünümünden izle.
- Tek tabloya özel autovacuum ayarı ver: Büyük sıra tablosunun geç temizlenmesini tablo düzeyinde eşik ve ölçek ayarlarıyla düzelt.
- Uzun işlemin temizliği durdurduğunu kanıtla: Açık kalan bir rapor işleminin VACUUM'u nasıl etkisiz bıraktığını göster ve zaman aşımıyla önle.
- Zaman sıralı tabloya BRIN ekle: Günlük tablosunda B-tree ile BRIN indeksini boyut ve sorgu süresi açısından karşılaştır.
- Yalnız indeks taramasını sağla: Görünürlük haritası güncel olmadığı için tabloya dönen sorguyu VACUUM ile yalnız indeks taramasına geçir.
- Paralel sorguyu devreye sok: Büyük toplama sorgusunun neden paralel çalışmadığını bul, ayarları değiştir ve işçi sayısının etkisini ölç.
Kurs hakkında
pg_stat_statements, auto_explain ve pgbench ile darboğazları ölçer; bellek, checkpoint, autovacuum ve paralel sorgu ayarlarını iş yüküne göre yapar, planları iyileştirirsin.
Ne öğreneceksin
- Ölçmek
- Sunucu ayarları
- Plan ve şema
Ön koşullar
Aynı yolun 301 düzeyine kadar olan konularını uygulamış olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde ve ona bağlı özel bir lab ağında geçer. Kurulum gerekmez.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 401 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.