Kim Seogyu
Backend

Linux 파일 디스크립터 제한 (ulimit) 실무 가이드

Too many open files 장애를 재현하고 해결하는 실전 점검 순서를 정리합니다.

Published 2025년 12월 30일1 min read151 words

Linux 파일 디스크립터 제한 (ulimit) 실무 가이드

핵심

파일, 소켓, 파이프는 모두 FD를 사용합니다. 트래픽이 증가하면 FD 한도 초과로 EMFILE/Too many open files가 발생합니다.

문제 해결은 두 축을 같이 봐야 합니다.

  • 한도 조정
  • 커넥션/핸들 누수 제거

점검 순서

  1. 프로세스 실제 한도 확인
cat /proc/<pid>/limits | grep "Max open files"
  1. 사용량 확인
ls /proc/<pid>/fd | wc -l
  1. 시스템 전체 한도 확인
cat /proc/sys/fs/file-max

영구 설정

systemd 서비스

[Service]
LimitNOFILE=65535

커널

# /etc/sysctl.d/99-fd.conf
fs.file-max = 2097152

적용 후 daemon-reload, 재시작, 재확인을 반드시 합니다.

자주 하는 실수

  • 셸에서 ulimit만 올리고 서비스에는 미반영
  • FD 한도만 올리고 keep-alive/timeout 미설정
  • 누수 원인 분석 없이 숫자만 반복 상향

요약

ulimit 문제는 설정 + 코드 문제입니다. 서비스 단(LimitNOFILE) 반영 여부를 먼저 검증하고, 이후 커넥션 관리 정책을 같이 튜닝해야 재발을 막을 수 있습니다.

Share

Related Articles

Comments

이 블로그는 제가 알고 있는 것들을 잊지 않기 위해 기록하는 공간입니다.
직접 작성한 글도 있고, AI의 도움을 받아 정리한 글도 있습니다.
정확하지 않은 내용이 있을 수 있으니 참고용으로 봐주세요.

© 2026 Seogyu Kim