Nginx, MySQL, PostgreSQL ve Redis servisleriniz için 'Too many open files' hatasını önleyen LimitNOFILE ve OOM Killer kapanmalarını engelleyen OOMScoreAdjust override yapılandırmalarını oluşturun.
Linux çekirdeği bellek bittiğinde en çok bellek tüketen süreci kapatır. MySQL gibi veritabanlarına negatif OOM skoru atamak, sistem kilitlenmelerinde sitenizin "Error establishing a database connection" hatasına düşmesini engeller.
fs.file-max = 262144/etc/systemd/system/mysql.service.d/override.conf
# /etc/systemd/system/mysql.service.d/override.conf # 2026 Systemd & cgroups v2 Kaynak Sınırlama Yapılandırması [Service] # Dosya Tanımlayıcı (File Descriptors) - 'Too many open files' Hatasını Önler LimitNOFILE=65536 # Süreç / Thread Sınırı (Process Limits) LimitNPROC=16384 # Cgroups v2 Bellek Koruma Sınırları MemoryMax=6144M MemoryHigh=5222M # Linux OOM Killer Önceliği (-1000 en korumalı, +1000 ilk kapatılacak) OOMScoreAdjust=-700 # Çökme Durumunda Otomatik Yeniden Başlatma Restart=always RestartSec=5s
sudo systemctl edit mysql
sudo systemctl daemon-reload && sudo systemctl restart mysql
systemctl show mysql -p LimitNOFILE,LimitNPROC,MemoryMax,OOMScoreAdjust
Linux sistem yöneticilerinin sıkça düştüğü hatalardan biri, dosya ve süreç sınırlarını (ulimit)/etc/security/limits.conf dosyasında tanımlamaktır. Ancak modern Linux dağıtımlarında arka planda çalışan sistem servisleri (systemd) bu dosyayı tamamen yok sayar. Bir servisin sınırlarını artırmak için doğrudan systemd drop-in override mekanizması kullanılmalıdır.
Linux'ta her açık ağ soketi, veritabanı tablosu ve SSL bağlantısı birer dosya tanımlayıcısı (file descriptor) olarak sayılır. Varsayılan systemd sınırı olan 1024, yoğun trafik anında hızla tükenerek Nginx'in 500 hataları üretmesine ve MySQL'in kilitlenmesine yol açar. Üretim ortamlarında LimitNOFILE=65536 veya daha yüksek bir değer tanımlanmalıdır.
Fiziksel bellek tükendiğinde çekirdek (kernel), en yüksek bellek kullanan süreci hedef alarak anında kapatır. Veritabanı sunucuları (MySQL/Postgres) büyük bellek tamponları kullandığı için genellikle ilk kurban olurlar.OOMScoreAdjust=-700 değeri atamak, çekirdeğin veritabanını kapatmasını önleyerek web sitenizin "Veritabanı bağlantı hatası" ile çökmesinin önüne geçer.