Máy chủ là Ubuntu 13.04 (GNU / Linux 3.9.3-x86_64-linode33 x86_64).
nginx là nginx / 1.2.6.
Tôi đã làm việc này được vài giờ rồi, vì vậy đây là những gì tôi nhận được và đây là những gì tôi đã làm.
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 đang chạy:
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
Đã sửa đổi giới hạn mềm / cứng trong /etc/security/limits.conf (cài đặt từ cuối tệp)
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
Đọc các tệp tối đa
cat /proc/sys/fs/file-max
500000
Và trong /etc/pam.d/common-session:
session required pam_limits.so
Với điều này được thêm vào và máy chủ được khởi động lại để có biện pháp tốt, đối với nginx, tôi đếm các giới hạn mềm / cứng bằng cách lấy PID của tiến trình cha mẹ và:
cat /proc/<PID>/limits
Limit Soft Limit Hard Limit Units
Max open files 1024 4096 files
Quá trình cha mẹ chạy dưới dạng 'root' và 4 công nhân chạy như 'không ai'.
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
Tôi đã thử mọi cách tôi biết cách làm và có thể nhận được từ Google. Tôi không thể tăng giới hạn tập tin cho nginx.
Cứu giúp?
worker_rlimit_nofile
cài đặt uWSGI chứ không phải giới hạn hệ thống (hoạt động với tôi), bạn không thể xác minh thông quaulimit
. Thay vào đó, bạn nên nhìn thẳng vào/proc/<pid of worker>/limits
.