Parametreler ve Değerleri

PostgreSQL de Parametreler ve Değerleri, performans, güvenlik, bağlantı ve genel çalışma dinamiklerini belirlemek için birçok yapılandırma parametresi sunar. Bu parametreler, genellikle postgresql.conf dosyasında tanımlanır ve sistem yöneticisi tarafından ihtiyaçlara göre düzenlenebilir. Bu bölümde, PostgreSQL’in en önemli parametrelerini ve bu parametrelerin nasıl yapılandırılabileceğini ele alacağız.

1. Bağlantı Parametreleri (Connection Parameters)

Bağlantı parametreleri, PostgreSQL’in istemci bağlantılarını nasıl yöneteceğini belirler.

• listen_addresses:
PostgreSQL’in hangi IP adreslerinden gelen bağlantıları dinleyeceğini tanımlar.
• Yerel bağlantılar için:

listen_addresses = ‘localhost’

• Tüm IP adreslerinden bağlantıya izin vermek için:

listen_addresses = ‘*’

Not: Güvenlik nedeniyle * kullanımı önerilmez. Bunun yerine belirli IP adresleri belirtilmelidir.

• port:
PostgreSQL’in dinleyeceği port numarasını ayarlar. Varsayılan değer 5432’dir.

port = 5432

• max_connections:
Sunucunun aynı anda kabul edebileceği maksimum bağlantı sayısını belirler.

max_connections = 100

Not: Bu değer, sistem kaynaklarına göre ayarlanmalıdır. Çok yüksek bir değer performansı olumsuz etkileyebilir.

• superuser_reserved_connections:
Yönetici işlemleri için ayrılan bağlantı sayısını belirler. Bu bağlantılar yalnızca superuser yetkisine sahip kullanıcılar tarafından kullanılabilir.

superuser_reserved_connections = 3

2. Bellek Yönetimi Parametreleri (Memory Management Parameters)

Bellek parametreleri, PostgreSQL’in bellek kullanımıyla ilgili davranışlarını kontrol eder. Doğru yapılandırma, performansı büyük ölçüde artırabilir.

• shared_buffers:
PostgreSQL tarafından kullanılacak paylaşılan bellek miktarını belirler. Genellikle sistem belleğinin %25’i önerilir.

shared_buffers = 512MB

• work_mem:
Her sorgu için ayrılan çalışma belleği miktarını belirler. Bu değer, sıralama ve birleştirme işlemleri sırasında kullanılır.

work_mem = 4MB

• maintenance_work_mem:
Bakım işlemleri (ör. VACUUM, CREATE INDEX) sırasında kullanılacak bellek miktarını belirler.

maintenance_work_mem = 64MB

• effective_cache_size:
PostgreSQL’in disk önbelleği tahminleri için kullandığı bellek miktarını belirtir. Genellikle toplam sistem belleğinin %50-75’i önerilir.

effective_cache_size = 2GB

3. Loglama Parametreleri (Logging Parameters)

PostgreSQL’in günlükleme davranışını kontrol eden parametrelerdir. Bu ayarlar, hata tespiti ve performans analizi için önemlidir.

• logging_collector:
Günlük dosyalarını toplamak için kullanılan bileşeni etkinleştirir.

logging_collector = on

• log_directory:
Günlük dosyalarının kaydedileceği dizini belirler.

log_directory = ‘pg_log’

• log_filename:
Günlük dosyalarının adlandırılma biçimini tanımlar.

log_filename = ‘postgresql-%Y-%m-%d_%H%M%S.log’

• log_min_messages:
Loglanacak minimum mesaj seviyesini ayarlar. Örneğin, sadece WARNING ve üstü mesajlar loglanabilir.

log_min_messages = WARNING

4. Oturum ve Zamanlama Parametreleri (Session and Timeout Parameters)

Oturum yönetimi ve zaman aşımı parametreleri, veritabanı bağlantılarının stabilitesini sağlar.

• idle_in_transaction_session_timeout:
Boşta kalan işlemler için zaman aşımı süresi belirler.

idle_in_transaction_session_timeout = 60000 # 60 saniye

• statement_timeout:
Sorguların maksimum çalışma süresini belirler.

statement_timeout = 30000 # 30 saniye

• lock_timeout:
Kilit alma işlemleri için maksimum bekleme süresini tanımlar.

lock_timeout = 5000 # 5 saniye

5. WAL ve Yedekleme Parametreleri (WAL and Backup Parameters)

PostgreSQL’in yedekleme ve kurtarma süreçlerini kontrol eden parametrelerdir.

• wal_level:
WAL (Write-Ahead Logging) seviyesini belirler. Olası değerler: minimal, replica, logical.

wal_level = replica

• archive_mode:
WAL dosyalarını arşivlemeyi etkinleştirir.

archive_mode = on

• archive_command:
WAL dosyalarının nasıl arşivleneceğini belirtir.

archive_command = ‘cp %p /path_to_archive/%f’

6. Performans Parametreleri (Performance Parameters)

Performansı artırmak için optimize edilebilecek parametreler.

• seq_page_cost:
Sıralı disk okuma işlemlerinin maliyetini tahmin eder.

seq_page_cost = 1.0

• random_page_cost:
Rastgele disk okuma işlemlerinin maliyetini tahmin eder. SSD kullanan sistemlerde bu değer daha düşük ayarlanabilir.

random_page_cost = 1.1

• parallel_workers_per_gather:
Paralel sorgular sırasında kullanılacak işçi süreç sayısını belirler.

parallel_workers_per_gather = 2

Sonuç

PostgreSQL parametreleri, sistemin bağlantı kabulünden performans ayarlarına, loglama politikasından bellek kullanımına kadar geniş bir yelpazede kontrol sağlar. Bu parametrelerin doğru bir şekilde yapılandırılması, hem performans hem de güvenlik açısından büyük fark yaratabilir.

Hasanipek.org

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir