【LINUX :: ulimit】
▣ 문제상황
⑴ 아파치 서버 재시작 시 오류 발생 > 로그
(키워드) "Too many open files error"
⑵ 리소스 배포시 오류발생 "너무 많은 파일이 열려있습니다. "
(시스템차원) 해당 요청 대응을 위한 자원 할당 수준 상향 설정 필요성
▣ 명령어
▣ 해결방안
⑴ 최대 파일 열기 갯수 확인
⑵ 프로세스별로 오픈된 파일 개수 확인
- (root 계정) lsof : 프로세스별 오픈된 파일 개수 확인
- (root 계정) lsof -p PID | wc -l → 지정한 프로세스가 몇개의 파일 사용중인지 확인
⑶ ulimit 설정 변경
-
① 1회성 변경 시 : ulimit 명령을 통한 변경
-
max user process 변경 ▶ ulimit -n 8192 : 프로세스 별 파일 열기 최대 갯수 설정
-
open files 갯수 변경 ▶ ulimit -u 4096 : 계정 별 생성 가능한 최대 프로세스 갯수 설정
-
(단점 ) ulimit 명령어 방식 수정 시, 재로그인 또는 리부팅 시 기본 설정 원복 적용(초기화)
-
② 상시 변경 적용 → 환경 설정 파일 수정 필요
-
vi /etc/security/limits.conf
-
-
limits.conf 파일
-
(장점) 프로세스 user 별 설정 지정 가능 → user별 자원 사용 한도 설정 가능
③ /etc/profile 수정
▣ 그외
-
리눅스 버전별로 확인할 파일명 및 명령은 다를 수 있음
-
cat /proc/sys/fs/file-max
-
sysctl fs.file-max
-
vi /etc/sysctl.conf → fs.file-max=66536 조정
================================
((TIL-2020-03-19))
- 애니링크 리소스 개발 후, 서버 배포 시 "너무 많은 파일이 열려있습니다" 의 오류를 만났다.
- 배포 관련 문제를 해결하기 위해 방법을 찾다가 "ulimit" 명령어 사용과 관련 있음을 알게 되었음
- Ulimit 관련 환경 설정 파일에서 open file 관련 설정을 상향 조정한 후, 배포 문제 해결
- Ulimit 관련 개념을 구글링 한 후, 해당 상황 발생 원인 및 대처에 대해 정리해봄