Extra Form
PHP PHP 7.4
CMS WordPress

안녕하세요.

 

Nginx 서버에서 워드프레스 웹사이트 여러개를 운영하고 있습니다.

 

최근 스테깅 사이트에서 웹사이트를 수정하는 가운데 500 Internal Server Error 가 발생하는걸 보았습니다.

 

그래서 우선 에러 로그를 보니 아래와 같이 나와있고 Nginx 문제인것 같아, 리스타트를 하니 문제는 해결되었습니다만...

 

2022/03/07 19:43:41 [crit] 563445#563445: accept4() failed (24: Too many open files)
2022/03/07 19:43:42 [crit] 563445#563445: accept4() failed (24: Too many open files)
 

근본적인 문제를 해결하기 위해 찾아보았습니다만... 너무 많은 정보와 값이 오히려 혼란스럽게 만듭니다.

 

리스타트 후 제 서버를 확인해보니, 아래와 같은 값이 나와서

 

ulimit -Hn #hard limit
1048576
ulimit -Sn #soft limit
1024

 

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7581
max locked memory       (kbytes, -l) 65536
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 7581
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
 

무작정 /etc/sysctl.conf에다가 


fs.file-max = 70000

 

을 추가했습니다만... 이걸로 해결이 된걸까요?

 

어떤 튜토리얼은 보니 /etc/security/limits.conf 에서 소프트와 하드 값을 각각 따로 지정하는 것도 있던데, 

 

이 작업도 해야되는걸까요...?

 

조언을 구하고 싶습니다. 감사합니다.

  • profile

    /etc/sysctl.conf

    /etc/security/limits.conf 또는 /etc/security/limits.d/***.conf 파일 추가

    최근 리눅스라면 nginx와 관련된 systemd 유닛파일에도 LimitNOFILE 설정을 추가해 주는 것이 좋습니다.

    nginx.conf에도 worker_rlimit_nofile 설정을 추가할 수 있습니다.

    여러 군데를 수정한다면 서로 충돌하지 않도록 일관성있는 값을 사용하는 것이 좋겠지요.

     

    리눅스 튜닝값을 기본 상태 그대로 두고 서버 운영하면 안 되는 이유 중 하나지요.

    연결 하나당 최소 3개의 file descriptor를 잡아먹는데 겨우 1024개로 누구 입에 붙여요...

  • profile ?

    안녕하세요 기진곰님. 자세한 설명 정말 감사합니다!

    우선 /etc/sysctl.conf, /etc/security/limits.conf, nginx.conf에 limit 값을 일괄적으로 10000으로 통일시켜 해결했습니다!

    기진곰님 답변을 보고 변경해야 될 리눅스 튜닝값이 더 있지 않을까? 싶어서

    ubuntu Important system configuration 등으로 검색을 해보았습니다만... 제가 원하는 결과가 안나오네요 ㅠㅠ

    혹시 제가 뭐라고 검색해야될지.. 힌트라도 주실 수 있으실까요?

    감사합니다.

  • ? profile

    검색해서 믿을 만 한 가이드가 나오는 것을 본 적이 없습니다. 사이트 특성, 서버 사양, 네트워크 구성에 따라 제각각인데 일괄적으로 어떻게 하라고 가르쳐 줄 수 있다면 그게 더 이상하지 않을까요? 일괄 적용할 수 있는 설정이라면 처음부터 그게 기본값일 테니까요.

     

    자동차 튜닝, 휴대폰 최적화 등 유사한 분야들이 대부분 그렇듯이 이 바닥에도 온갖 돌팔이들이 넘쳐나고 주관적인 의견을 마치 진리인 양 써놓은 블로그가 많아서 함부로 추천해 드리기도 어렵네요.

  • profile ?
    그렇군요 ㅠㅠ 잘 알겠습니다. 알려주셔서 정말 감사합니다!