내 Linux 서버에서 갑자기 "열린 파일이 너무 많습니다." 오류가 발생하는 원인은 무엇입니까?

내 Linux 서버에서 갑자기 "열린 파일이 너무 많습니다." 오류가 발생하는 원인은 무엇입니까?

내 호스팅 회사는 약 일주일 전에 내 서버를 최신 시스템으로 옮겼으며 한 쿼리에 대한 작은 ORDERBY 문제를 제외하고 모든 것이 원활하게 실행되고 있습니다.

어젯밤 갑자기 내 사이트 속도가 느려지기 시작했고 업스트림에 연결하는 동안 오류 로그가 "Socket() failed (24: Too Many Open Files)" 오류로 가득 차 있는 것을 발견했습니다. 내 사용자 정의 CMS 관리자에 문제가 있을 수 있다고 생각하여 어젯밤에 몇 시간 동안 작업했는데 갑자기 오류 메시지가 사라지고 모든 것이 원활하게 실행되기 시작했습니다.

오늘 오후부터 서버에 다시 문제가 발생하기 시작했습니다. 컴퓨터를 다시 시작하자 즉시 nginx 오류 로그가 동일한 오류로 채워지기 시작했습니다. 이번에도 약 10분 후에 오류가 중지되었으며 그 이후로 서버는 원활하게 실행되고 있습니다.

나는 결코 UNIX 관리자는 아니지만 상당히 논리적으로 생각할 수 있습니다. 여기서 무슨 일이 일어나고 있는지 모르겠습니다.

답변1

당신은 확인할 수 있습니다ulimit-n시스템이 허용하는 파일 수를 확인하려면 nginx가 루트로 실행되지 않는 경우 사용자에게 이를 구성할 수 있습니다. 임시 수정으로 아직 최대값으로 설정되지 않은 경우 값을 늘릴 수 있습니다./etc/security/limits.conf. 또한 응용 프로그램이 연결을 활성 상태로 유지하고 닫지 않는지 확인하십시오. 응용 프로그램 문제인 것 같습니다.

사용자 이름 대신 *를 사용하면 모든 사용자에게 적용됩니다.

/etc/security/limits.conf

*     soft   nofile  1024        
*     hard   nofile  65535

관련 정보