Servernya adalah Ubuntu 13.04 (GNU / Linux 3.9.3-x86_64-linode33 x86_64).
nginx adalah nginx / 1.2.6.
Saya sudah mengerjakan ini selama beberapa jam sekarang, jadi inilah yang saya dapatkan dan inilah yang saya lakukan.
tail -f /usr/local/nginx/logs/error.log
2013/06/18 21:35:03 [crit] 3427#0: accept4() failed (24: Too many open files)
2013/06/18 21:35:04 [crit] 3427#0: accept4() failed (24: Too many open files)
2013/06/18 21:35:04 [crit] 3427#0: accept4() failed (24: Too many open files)
2013/06/18 21:35:04 [crit] 3427#0: accept4() failed (24: Too many open files)
2013/06/18 21:35:04 [crit] 3427#0: accept4() failed (24: Too many open files)
2013/06/18 21:35:04 [crit] 3427#0: accept4() failed (24: Too many open files)
2013/06/18 21:35:04 [crit] 3427#0: accept4() failed (24: Too many open files)
2013/06/18 21:35:04 [crit] 3427#0: accept4() failed (24: Too many open files)
2013/06/18 21:35:04 [crit] 3427#0: accept4() failed (24: Too many open files)
2013/06/18 21:35:04 [crit] 3427#0: accept4() failed (24: Too many open files)
2013/06/18 21:35:04 [crit] 3427#0: accept4() failed (24: Too many open files)
2013/06/18 21:35:04 [crit] 3427#0: accept4() failed (24: Too many open files)
2013/06/18 21:35:05 [crit] 3426#0: accept4() failed (24: Too many open files)
Nginx running:
geuis@localhost:~$ ps aux | grep nginx
root 3422 0.0 0.0 39292 380 ? Ss 21:30 0:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody 3423 3.7 18.8 238128 190848 ? S 21:30 0:13 nginx: worker process
nobody 3424 3.8 19.0 236972 192336 ? S 21:30 0:13 nginx: worker process
nobody 3426 3.6 19.0 235492 192192 ? S 21:30 0:13 nginx: worker process
nobody 3427 3.7 19.0 236228 192432 ? S 21:30 0:13 nginx: worker process
nobody 3428 0.0 0.0 39444 468 ? S 21:30 0:00 nginx: cache manager process
Batas lunak / keras yang dimodifikasi di /etc/security/limits.conf (pengaturan dari akhir file)
root soft nofile 65536
root hard nofile 65536
www-data soft nofile 65536
www-data hard nofile 65536
nobody soft nofile 65536
nobody hard nofile 65536
Pembacaan file maks
cat /proc/sys/fs/file-max
500000
Dan di /etc/pam.d/common-session:
session required pam_limits.so
Dengan ini ditambahkan dan server restart untuk ukuran yang baik, untuk nginx saya menghitung batas lunak / keras dengan mendapatkan PID proses induk dan:
cat /proc/<PID>/limits
Limit Soft Limit Hard Limit Units
Max open files 1024 4096 files
Proses induk berjalan sebagai 'root' dan 4 pekerja berjalan sebagai 'tidak ada'.
root 2765 0.0 0.0 39292 388 ? Ss 00:03 0:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody 2766 3.3 17.8 235336 180564 ? S 00:03 0:21 nginx: worker process
nobody 2767 3.3 17.9 235432 181776 ? S 00:03 0:21 nginx: worker process
nobody 2769 3.4 17.9 236096 181524 ? S 00:03 0:21 nginx: worker process
nobody 2770 3.3 18.3 235288 185456 ? S 00:03 0:21 nginx: worker process
nobody 2771 0.0 0.0 39444 684 ? S 00:03 0:00 nginx: cache manager process
Saya sudah mencoba semua yang saya tahu bagaimana melakukannya dan telah dapat saya peroleh dari Google. Saya tidak bisa mendapatkan batas file untuk nginx meningkat.
Membantu?
sumber
worker_rlimit_nofile
pengaturan uWSGI dan bukan batas sistem (yang berfungsi untuk saya), Anda tidak dapat memverifikasinya melaluiulimit
. Sebaliknya, Anda harus melihat langsung/proc/<pid of worker>/limits
.Di Ubuntu, edit /etc/pam.d/su tambahkan atau batalkan komentar pada sesi baris yang diperlukan pam_limits.so
Juga, di /etc/security/limits.conf pastikan Anda memiliki TABS antara karakter dan bukan spasi.
sumber
pastikan Anda menjalankan perintah berikut setelah mengedit file-file itu
Kemudian mulai kembali nginx
sumber