Kernel Performance Tuning
Linux kernel parametreleri, sistem performansını doğrudan etkiler. Bu rehberde kritik sysctl ayarlarını ve kernel optimizasyonlarını inceleyeceğiz.
Sysctl Nedir?
sysctl, çalışan kernel parametrelerini dinamik olarak değiştirmeye yarayan bir araçtır. /proc/sys altındaki değerleri okur ve yazar.
Memory (Bellek) Optimizasyonu
# /etc/sysctl.d/99-memory.conf
Swap kullanımını minimize et (0-100 arası, düşük = az swap)
vm.swappiness = 10
Dirty page oranları - disk yazma optimizasyonu
vm.dirty_ratio = 40
vm.dirty_background_ratio = 10
vm.dirty_expire_centisecs = 3000
vm.dirty_writeback_centisecs = 500
Memory overcommit ayarı
vm.overcommit_memory = 0
vm.overcommit_ratio = 50
Huge Pages (veritabanı sunucuları için)
vm.nr_hugepages = 1024
Network Stack Optimizasyonu
# /etc/sysctl.d/99-network.conf
TCP bağlantı kuyruğu
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
TCP buffer boyutları (yüksek bant genişliği için)
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
TIME_WAIT socket yönetimi
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 15
Keepalive ayarları
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 15
SYN flood koruması
net.ipv4.tcp_syncookies = 1
File System Limitleri
# /etc/sysctl.d/99-fs.conf
Maksimum açık dosya sayısı
fs.file-max = 2097152
fs.nr_open = 2097152
Inotify limitleri (izleme için)
fs.inotify.max_user_watches = 524288
fs.inotify.max_user_instances = 512
Ulimit Ayarları
# /etc/security/limits.conf
- soft nofile 65535
- hard nofile 65535
- soft nproc 65535
- hard nproc 65535
Systemd servisleri için
/etc/systemd/system.conf
DefaultLimitNOFILE=65535
I/O Scheduler Seçimi
# Mevcut scheduler
cat /sys/block/sda/queue/scheduler
SSD için (none veya mq-deadline)
echo "none" | sudo tee /sys/block/sda/queue/scheduler
HDD için
echo "mq-deadline" | sudo tee /sys/block/sda/queue/scheduler
Değişiklikleri Uygulama
# Tüm sysctl ayarlarını uygula
sudo sysctl --system
Belirli bir dosyayı uygula
sudo sysctl -p /etc/sysctl.d/99-network.conf
Sonuç
Bu kernel parametreleri ile %20-30 performans artışı sağlanabilir. Değişikliklerden önce mutlaka test ortamında doğrulama yapın.