- Published on
서버 로그에 accept4 failed (24: Too many open files)가 찍히고 ulimit -n을 올렸는데도 그대로입니다. 이 증상 뒤에는 서로 독립적인 세 가지 한계가 있습니다. 프로세스별 RLIMIT_NOFILE, 시스템 전역 fs.file-max, 그리고 systemd 서비스의 LimitNOFILE이 셸의 ulimit 설정을 완전히 무시한다는 사실입니다. /proc/PID/limits로 실제 적용값을 확인하는 법, fd를 소켓·파일·파이프로 세분해 무엇이 먹는지 찾는 법, inotify와 epoll은 별개의 한계라는 점, 그리고 진짜 원인인 fd 누수를 확인하는 법을 정리합니다.