재인쇄할 소스를 표시해 주세요: http://blog.csdn.net/l1028386804/article/details/51425325
nginx를 사용하여 트래픽이 매우 많은 서버가 있습니다. 오류 로그 다음 오류가 계속 보고됩니다.
2016/05/16 08:53:49 [alert] 13576#0: accept() failed (24: Too Many Open Files)
2016/05/16 08 :53:49 [경고] 13576#0: accept() 실패(24: 열린 파일이 너무 많음)
2016/05/16 08:53:49 [경고] 13576#0: accept() 실패(24: 열린 파일이 너무 많습니다)
2016/05/16 08:53:49 [alert] 13576#0: accept() 실패 (24: 열린 파일이 너무 많습니다)
2016/05/16 08:53:49 [alert] 13576#0: accept() 실패 (24: 너무 많은 열린 파일)
2016/05/16 08:53:49 [alert] 13576#0: accept() 실패 (24: 너무 많은 열린 파일) ) )
2016/05/16 08:53:49 [경고] 13576#0: accept() 실패 (24: 열린 파일이 너무 많음)
2016/05/16 08:53:49 [경고] 13576 #0: accept() 실패 (24: 열린 파일이 너무 많음)
2016/05/16 08:53:49 [alert] 13576#0: accept() 실패 (24: 열린 파일이 너무 많음)
2016/05/16 08:53:49 [alert] 13576#0: accept() failed (24: 너무 많은 열린 파일)
해결책:
centos5.3의 ulimit - n은 1024입니다. Nginx 연결 수가 1024를 초과하면 error.log에 다음 오류가 나타납니다.
[alert] 12766#0: accept() failed (24: Too Many Open Files)
ulimit -n 655350을 사용하여 열린 파일 수를 충분히 크게 설정하고, 동시에 nginx.conf를 수정하고, Worker_rlimit_nofile 655350을 추가합니다(error_log와 동일한 수준).
이 방법으로 문제도 해결할 수 있습니다. 많은 Nginx 연결, Nginx 높은 동시성을 지원할 수 있습니다. <nginx도 수정>
또한 ulimit -n은 mysql의 동시 연결 수에도 영향을 미칩니다. 이를 개선하면 mysql 동시성도 향상됩니다.
참고: ulimit -n 2048을 사용한 수정은 현재 셸에만 유효하며 종료 후에는 무효화됩니다.
수정 방법
ulimits 값을 영구적으로 수정하려면 구성 문서를 수정해야 합니다. ulimit 수정 명령을 /etc/profile에 넣으면 됩니다. 이 방법은 정말 불편합니다. .
또 다른 방법은 /etc/security/limits.conf
/etc/security/limits.conf의 형식을 수정하는 것입니다. 예를 들어,
* Soft nofile 655360
* hard nofile 655360
별표는 글로벌 상황을 나타냅니다. , 소프트는 소프트웨어, 하드는 하드웨어이며, 여기서 nofile은 열려 있는 파일 수를 의미합니다.
limits.conf 파일에 위의 두 줄을 추가합니다.
또한,limits.conf 파일 구성을 적용하려면 pam_limits.so 파일이 시작 파일에 추가되었는지 확인해야 합니다. /etc/pam.d/login 파일을 확인하고 다음을 찾으세요:
session require /lib/security/pam_limits.so
로그인하면 효과를 볼 수 있습니다. 수정 후 다시 ulimit -n을 통해 볼 수 있습니다.
위 내용은 Nginx에 대한 소개입니다. - nginx: accept failed 24: Too much open files, 관련 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.