Mengatasi error (24: Too many open files) pada nginx

0
1585

halo sobat sekolahlinux, kali ini saya akan share kasus dari error nginx, error ini terjadi pada server production salah satu client, errornya kurang lebih seperti ini jika di lihat di log error nginx “accept4() failed (24: Too many open files)” si client protest kenapa setiap trafik sedang ramai kok terjadi 500 internal server error, setelah lihat log dan baca-baca tentang case ini akhirnya saya mengambil kesimpulan error tersebut terjadi dikarenakan trafik tinggi sehingga beban request open file pun meningkat dan menyentuh batas limit dari server tersebut serta nginxnya (tapi jika saya salah silahkan dikoreksi ya hehe), nah untuk case ini berikut ini beberapa tahapan yang saya lakukan.

pertama kita cek dulu limit maximal file yg ada di os server kita

cat /proc/sys/fs/file-max

maka hasilnya akan seperti dibawah ini

120000

lalu check dulu limit file pada os server kalian

ulimit -n
ulimit -Hn
ulimit -Sn

defaultnya limit pada level OS biasanya 1024.

sekarang tingkatkan open file pada level OS, caranya dengan edit / tambahkan rule dibawah ini pada /etc/sysctl.conf

fs.file-max = 120000

lalu buka juga file /etc/security/limits.conf lalu edit / tambahkan rule dibawah ini didalamnya

* soft nofile 120000
* hard nofile 120000

lalu jalankan perintah ini pada console anda

ulimit -n 120000

lalu jalankan perintah ini untuk menerapkan rule yang kita tambahkan diatas

sysctl -p

sekarang kita tingkatkan limit open file pada nginx, caranya dengan menambahkan rule dibawah ini pada /etc/nginx/nginx.conf tepat dibawah rule “worker_processes”

worker_rlimit_nofile 120000;

jika sudah restart nginx kalian, pada beberapa kasus tertentu yang saya baca di internet dibutuhkan reboot OS, namun jika dirasa yakin tidak perlu untuk reboot OS. saya sendiri tidak reboot OS hanya restart nginx. dan alhamdulillah tidak ada masalah

selamat mencoba ya 😀 dan selamat membaca.