1. shared_buffers – Bellek Kullanımını Optimize Edin
PostgreSQL'in bellek kullanımını optimize etmek, performans üzerinde büyük bir fark yaratabilir. Bu ayar, PostgreSQL’in veri dosyalarını bellekte nasıl yönettiğini belirler. Varsayılan ayar düşük olabilir ve genellikle yeterli değildir. Bu nedenle, `shared_buffers` parametresini artırarak daha fazla veri bellekte tutulabilir ve disk okuma/yazma işlemleri azalır.
shared_buffers = 4GB # 4GB olarak ayarlandı, ihtiyacınıza göre artırabilirsiniz.
Not: Bu ayarın değeri, sistemdeki toplam belleğin %25’ini geçmemelidir.
2. work_mem – Sorgu İşlemeleri İçin Bellek Ayrımı
Her bir sorgu çalıştırıldığında, PostgreSQL verileri işlemek için belleği kullanır. Ancak, varsayılan ayar genellikle düşük olur. `work_mem` ayarını artırarak, sorguların daha hızlı çalışmasını sağlayabilirsiniz. Bu, özellikle karmaşık sorgularda büyük fark yaratır.
work_mem = 16MB # İhtiyacınıza göre ayarlayın, ancak çok yüksek tutmamaya dikkat edin.
3. effective_cache_size – Disk Okuma Performansını Arttırın
PostgreSQL, bellekten okuma yaptığı kadar, diskten okuma yapar. `effective_cache_size` ayarını doğru yapılandırmak, disk okuma performansını artıracaktır. Bu ayar, PostgreSQL’in veritabanı önbelleğini ne kadar büyük düşündüğünü belirler ve daha verimli sorgu planlamasına yardımcı olur.
effective_cache_size = 12GB # Bellek büyüklüğünü dikkate alarak ayar yapın.
4. autovacuum – Veritabanı Temizliği İçin Otomatik Ayarlamalar
Veritabanınızda zamanla gereksiz veri birikmesi normaldir. Bu durum, veritabanının performansını olumsuz etkileyebilir. `autovacuum` ayarını doğru yaparak, gereksiz verilerin düzenli olarak temizlenmesini sağlayabilir ve böylece daha temiz bir veri tabanı ile daha iyi performans elde edebilirsiniz.
autovacuum = on # Otomatik temizlik işlemini etkinleştirin.
5. max_connections – Bağlantı Sayısını Yönetme
PostgreSQL, varsayılan olarak 100 bağlantı kabul eder. Ancak, bu sayı çok fazla olabilir ve veritabanı üzerinde aşırı yük yaratabilir. Bağlantı sayısını ihtiyacınıza göre sınırlandırmak, veritabanı performansını artıracaktır. Özellikle yüksek trafikli uygulamalarda bu ayar çok önemlidir.
max_connections = 200 # Bağlantı sayısını ihtiyaca göre düzenleyin.
6. checkpoint_completion_target – Checkpoint Sürelerini Optimize Edin
PostgreSQL, verilerin disk üzerinde tutarlı bir şekilde yazılması için periyodik olarak checkpoint işlemi yapar. Bu işlemin tamamlanma süresi, veritabanı üzerinde büyük bir yük yaratabilir. `checkpoint_completion_target` ayarını doğru yapılandırarak, bu süreyi daha verimli hale getirebilirsiniz.
checkpoint_completion_target = 0.9 # Checkpoint tamamlanma süresini optimize edin.
7. log_min_duration_statement – Performans İzleme
Sorgu performansını izlemek, olası darboğazları anlamak için önemlidir. `log_min_duration_statement` ayarını kullanarak, belirli bir süreyi aşan sorguları loglayabilir ve bu sorguları optimize edebilirsiniz.
log_min_duration_statement = 1000 # 1 saniyeden uzun süren sorguları logla.
Sonuç
Bu 7 PostgreSQL ayarını uygulayarak, veritabanı performansınızı önemli ölçüde artırabilirsiniz. Her bir ayarın, veritabanınızın özel ihtiyaçlarına göre doğru bir şekilde yapılandırılması gerekir. Bu ayarlarla, sadece hızda değil, aynı zamanda genel veritabanı yönetiminde de büyük bir iyileşme sağlayabilirsiniz. Unutmayın, küçük ayar değişiklikleri büyük farklar yaratabilir.