[리눅스]오픈 파일 개수 수정
특정 프로그램을 구동 시킬려고 했더니 Too many open files라는 에러가 나오면서 구동이 되지 않았다.
ulimt -a로 확인 해보니 open files수가 1024로 되어 있는 것을 확인 할 수 있었다.
ulimt -n을 이용하여 open files 수를 4096으로 올려주니 정상적으로 프로그램이 구동이 되었다.
문제는 그 다음부터 나왔다. ulimit -n으로 변경 된 open files 수는 재부팅을 하거나 새로 로그인을 하게 되면 open files수가 1024로 되돌아 와 구동중인 데몬이 죽는 경우가 발생했다.
이것은 /etc/security/limits.conf라는 파일을 수정하여 해결 하였다.
위와 같이 수정을 하니 재부팅을 하거나 로그인을 새로 해도 open files 수는 4096이 되었다.
다른 자료들을 찾아보니 /etc/security/limits.conf 수정하는 방법은 다음과 같았다.
1. 특정 계정 Open files 수 변경 시(test 계정만 4096으로 변경 시)
test soft nofile 4096
test hard nofile 4096
2. 내것의 경우는 soft만 4096으로 변경해 주었는데 다른 OS의 경우 아래와 같이 권장 하는 경우
가 많았다.
* soft nofile 4096
* hard nofile 4096
그런데 /etc/security/limts.conf 수정은 성공적이었는데, 여기서 또 다른 문제가 나를 골치 아프게 했다. 다른 계정으로 로그인 한 후 root로 스위치 유저를 하면 문제가 없었는데 root로 바로 로그인을 하게 되면 open files수는 그대로 1024였던 것이다.
이유를 확인해 보니 limits.conf라는 파일은 PAM 모듈을 참조하는 것만 반영이 된다는 것을 확인 할 수 있었다.
/etc/pam.d 모듈을 vi로 열어 확인하니 su는 PAM 모듈을 사용하는 것을 확인 할 수 있었다. 이래서 스위치 유저 이후에는 정상적으로 반영이 되었던 거 같다.
결국 해결은 /root/.bash_profile(내경우 디폴트 프로파일로 bash를 사용)에 위와 같이 한 줄을 넣어 문제를 해결했다. 이렇게 하니 root 계정으로 로그인을 해도 open files 수는 4096으로 반영이 되었다.
'02.서버-Linux' 카테고리의 다른 글
[리눅스]APM 설치 (0) | 2012.12.19 |
---|---|
[리눅스]커널 튜닝 관련 내용 (0) | 2012.12.19 |
[리눅스]커널 파라메터 (0) | 2012.12.19 |
[리눅스]아파치 사설 인증서 설치 (0) | 2012.12.19 |
[리눅스]아파치 번역 (0) | 2012.12.19 |