Buyuk boyutlu bellekli sunucularda (64 GB - 512 GB RAM) yedekleme alirken veya yuksek yazma aninda web sitelerinizin 10 saniye boyunca tamamen kilitlenmesini (Write Stall) engelleyin. Linux cekirdegini yuzdesel orandan (dirty_ratio) mutlak bayt sinirina (dirty_bytes) gecirin.
vm.dirty_ratio = 20 & vm.dirty_background_ratio = 10
vm.dirty_bytes & vm.dirty_background_bytes
Kalıcı cekirdek parametreleri. Yeniden baslatmalarda otomatik devreye girer.
# /etc/sysctl.d/99-dirty-memory-nvme.conf # 2026 Linux I/O Write Stall ve NVMe Kirli Bellek Optimizasyonu # Yuzdesel degerleri devre disi birakip mutlak bayt limitlerine gecin: vm.dirty_background_bytes = 402653184 # 384 MB vm.dirty_bytes = 805306368 # 768 MB # Kirli sayfalarin diske yazilma sikligi (centisecs cinsinden): vm.dirty_writeback_centisecs = 100 # Her 1 saniyede bir kontrol et vm.dirty_expire_centisecs = 300 # 3 saniyeden eski sayfayi zorla yaz # Disk I/O tikanikliginda VFS onbellek temizligini hizlandir vm.vfs_cache_pressure = 50
Sunucuyu yeniden baslatmadan aninda canli uygulama scripti.
sudo sysctl -w vm.dirty_background_bytes=402653184 \ && sudo sysctl -w vm.dirty_bytes=805306368 \ && sudo sysctl -w vm.dirty_writeback_centisecs=100 \ && sudo sysctl -w vm.dirty_expire_centisecs=300 \ && echo "Linux I/O stall optimizasyonu canli olarak uygulandi."
# /etc/default/grub (NVMe APST Uyku Modu Gecikmesini Kapatma) # NVMe suruculerin enerji tasarrufu icin uykuya dalmasini ve 35ms gecikme sicramasi yapmasini onler: GRUB_CMDLINE_LINUX_DEFAULT="... nvme_core.default_ps_max_latency_us=0" # Guncelleme komutu: # sudo update-grub (Ubuntu/Debian) veya sudo grub2-mkconfig -o /boot/grub2/grub.cfg (RHEL)
Linux isletim sistemi, disk yazma islemlerini dogrudan surucuye yazmak yerine oncelikle bos sistem belleginde (Page Cache) biriktirir ve bu sayfalari "kirli (dirty)" olarak isaretler. Varsayilan Linux cekirdek ayarlarinda bu esik yuzdesel olarak tanimlanmistir: vm.dirty_background_ratio = 10ve vm.dirty_ratio = 20.
Bu yuzdeler 4 GB RAM'li eski sunucularda makul olsa da, 128 GB veya 256 GB RAM'li modern sunucularda felakete yol acar. 128 GB RAM'li bir sunucuda %20 demek, bellekte tam 25.6 GB kirli verinin birikmesi demektir. Bir veritabani yedegi (pg_dump / mysqldump) veya buyuk dosya kopyalamasi yapildiginda bu esik asilir. Cekirdek, sistemi korumak icin yazma yapan tum diger surecleri (Nginx, PostgreSQL, Redis) zorla durdurur (bloke eder) ve 25 GB'lik veriyi senkron olarak diske bosaltmaya calisir.
Bu sorunun modern cozum yolu, yuzdesel parametreleri terkedip vm.dirty_bytesve vm.dirty_background_bytes kullanmaktir. Arka plan bosaltmasini 256 MB'a, azami senkron siniri ise 512 MB - 1 GB seviyesine sabitleyerek; diske tek seferde aktarilacak veri miktari minik bloklara bolunur. Boylece 10 saniyelik sunucu donmasi, kullanicilar tarafindan hissedilemeyecek 50-100 milisaniyelik akici bir arka plan surecine donusur.
Bircok modern kurumsal NVMe surucusu, enerji tasarrufu saglamak icin bosta kaldiginda otomatik olarak derin uyku moduna gecer. Aniden bir yazma islemi geldiginde kontrolcunun uyanmasi (wake-up latency) 20 ila 50 milisaniye gecikme sicramasina yol acar. GRUB uzerine nvme_core.default_ps_max_latency_us=0eklenerek surucunun daima en yuksek performans modunda kalmasi saglanmalidir.
Her dosya okumasinda erisim zamaninin diske yazilmasini onlemek icin /etc/fstabdosyasinda diskler noatime ile baglanmalidir. Ayrica NVMe suruculerde donanimsal coklu kuyruk kontrolcusu oldugu icin cekirdek scheduler'i mutlaka noneolarak birakilmalidir.