본문 바로가기
Etc

nofile이란?

by 당리 2025. 9. 21.

리눅스에서 nofile은 하나의 프로세스가 동시에 열 수 있는 파일 디스크립터(File Descriptor, FD)의 최대 개수를 뜻합니다.
여기서 말하는 "파일"은 단순한 파일만이 아닙니다. 소켓, 파이프, 장치, 네트워크 연결까지 모두 포함됩니다. 즉, 대고객 서비스를 운영하는 서버에서는 소켓 연결이 폭증하면 곧바로 nofile 한계에 부딪히게 됩니다.

왜 장애로 이어질까?

예를 들어 기본 nofile 값이 1024라면,

  • 2000명의 사용자가 동시에 접속해도
  • 프로세스는 1024개까지만 파일/소켓을 열 수 있습니다.

그 순간부터 신규 연결 시도는 “Too many open files” 에러를 내며 거절되고, 결국 서비스 장애가 발생합니다. 실제로 제 케이스도 이 문제 때문에 고객 접속이 끊기면서 장애가 발생했습니다.

 

 

  • WAS, DB, nginx 같은 대량 접속 서비스는 보통 nofile=65535 이상으로 설정
  • lsof | wc -l 명령어로 열린 FD 개수를 주기적으로 점검
  • 로그에 Too many open files 문구가 보이면 FD 한계 문제 가능성 높음
  • 장애 대응뿐만 아니라 신규 시스템 오픈 시 사전 점검 항목으로 꼭 넣어야 함

'Etc' 카테고리의 다른 글

간단한 SQL 튜닝 팁  (0) 2025.09.28
결제 안정성 확보  (0) 2025.09.21
크레덴셜 스터핑  (0) 2025.09.14
ARS 인증의 무력화  (0) 2025.09.14
Oracle to PG 정합성 - 데이터 레벨 검증  (1) 2025.09.14