Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Linux Kernel Parametrelerini (sysctl.conf) Veritabanı Sunucuları İçin Optimize Etme Rehberi

devster

Üye
Katılım
14 Mart 2026
Mesajlar
23
Merhaba arkadaşlar, bugün sizlere özellikle MySQL, PostgreSQL gibi veritabanı sunucularınızın performansını ve kararlılığını ciddi oranda artırabileceğiniz, Linux kernel parametrelerini nasıl optimize edeceğinizi anlatacağım. Bu ayarlar, sunucunuzun bellek yönetimi, ağ performansı ve dosya işlemleri gibi kritik alanlarını doğrudan etkiler. Benim yönetimimdeki sunucularda da standart olarak uyguladığım bu optimizasyonları adım adım birlikte yapalım.

🔍 Giriş ve Ön Hazırlık

Öncelikle, bu ayarları yapmadan önce mevcut değerleri görmek ve yedek almak çok önemli. Aşağıdaki komutla şu anki tüm aktif sysctl değerlerini bir dosyaya kaydedelim. Bu, bir sorun olursa geri dönüş için hayati önem taşır.

Bash:
sudo sysctl -a > /tmp/sysctl_backup_$(date +%F).txt

Ana konfigürasyon dosyamız genellikle /etc/sysctl.conf'dur. Bazı dağıtımlarda /etc/sysctl.d/ dizini altında özel dosyalar da oluşturabilirsiniz. Ben direkt ana dosya üzerinden gideceğim.

⚙️ Bellek ve Swap Optimizasyonu

Veritabanı sunucuları bellek canavarıdır. İşlemlerin mümkün olduğunca swap'e düşmemesi ve belleğin verimli kullanılması gerekir.

NGINX:
# Swappiness değerini düşürerek, sistemin swap kullanmaya daha geç başlamasını sağlıyoruz.
vm.swappiness = 10

# Dirty page'lerin bellekte kalma sürelerini ve oranlarını veritabanı iş yüküne uygun hale getiriyoruz.
vm.dirty_ratio = 60
vm.dirty_background_ratio = 5
vm.dirty_expire_centisecs = 3000

# Overcommit ayarı. PostgreSQL gibi DB'ler için genellikle '2' önerilir.
vm.overcommit_memory = 2
vm.overcommit_ratio = 80

🌐 Ağ ve Bağlantı Optimizasyonu

Veritabanına yapılacak yüksek sayıda bağlantıyı karşılamak ve ağ performansını artırmak için bu ayarlar kritiktir.

NGINX:
# TCP bağlantı parametrelerini genişletiyoruz.
net.core.somaxconn = 4096
net.core.netdev_max_backlog = 4096
net.ipv4.tcp_max_syn_backlog = 4096

# TCP bağlantılarının daha hızlı yeniden kullanılmasını sağlıyoruz.
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30

# TCP pencere boyutlarını artırarak yüksek gecikmeli ağlarda performansı iyileştiriyoruz.
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.ipv4.tcp_rmem = 4096 87380 134217728
net.ipv4.tcp_wmem = 4096 65536 134217728

⚠️ Dosya Sistemi ve Limitler

Bu bölümde, sunucunun aynı anda açabileceği dosya sayısı gibi sistem limitlerini yükseltiyoruz. Özellikle çok sayıda tablo ve bağlantı için şart.

NGINX:
# Açık dosya tanımlayıcı limitini (file descriptors) büyük tutuyoruz.
fs.file-max = 2097152

# PID sınırını artırıyoruz.
kernel.pid_max = 4194303

# Core dump'ları devre dışı bırakıyoruz (opsiyonel, güvenlik/performans).
kernel.core_pattern = /dev/null

🚀 Ayarları Aktif Etme ve Test

Tüm bu değişiklikleri /etc/sysctl.conf dosyasının sonuna ekledikten veya mevcut satırları değiştirdikten sonra, değişiklikleri sisteme uygulamamız gerekiyor.

Bash:
sudo sysctl -p

Komut hata vermeden çalışırsa, ayarlarınız uygulanmış demektir. Önemli ayarlardan birkaçını teyit etmek için kontrol edebilirsiniz.

Bash:
sysctl vm.swappiness net.core.somaxconn fs.file-max

💎 Sonuç ve Öneriler

Bu rehberde, veritabanı sunucuları için genel geçerli kernel optimizasyonlarını paylaştım. Unutmayın, bu ayarlar sihirli değnek değildir ve sunucunuzun donanımına (RAM, CPU, disk tipi) ve üzerinde çalışan spesifik veritabanı motorunun kendine has tavsiyelerine göre ince ayar yapmanız gerekebilir. Her zaman değişiklik öncesi yedek alın ve test ortamında deneyin.

Siz bu kernel ayarlarını kendi sunucularınızda nasıl yapıyorsunuz? Özellikle PostgreSQL veya MySQL için ekstra önerileriniz var mı? Takıldığınız bir nokta olursa aşağıya yazmaktan çekinmeyin, birlikte çözelim.
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri