Error resolution

[linux 에러] 어플리케이션 too many open files 에러 해결

keepbang 2021. 5. 6. 00:49

리눅스에서 어플리케이션(was서버 등등)을 잘 돌리다가

성능테스트에서 too many open files라는 에러가 나왔다....

구글링을 해본 결과 os에 요청하는 프로세스수가 설정해 놓은 limit을 넘어서 생긴 에러라한다.

ulimt명이령어를 통해 nofile limit을 확인한다

$ulimit -Hn

$ulimit -Sn

기본값은 4096, 1024

limit을 막 올려버리면 문제가 생길 수 있기 때문에 아래와같은 명령어로 system 전체 limit을 확인해본다

limit을 설정할때는 system 전체 limit보다 적게 설정해야한다

$ cat /proc/sys/fs/file-max

전체 limit을 확인했으면 root 계정으로 /etc/security/limits.conf파일을 열어서 아래와같은 포맷으로 입력해준다

....

[어플리케이션 계정] hard nofile [limit설정값]

[어플리케이션 계정] soft nofile [limit설정값]

[어플리케이션 계정] soft memlock unlimited

[어플리케이션 계정] soft memlock unlimited

....

(메모리는 혹시모르니 unlimited로 걸어준다)

어플리케이션 계정에 *을 넣으면 전체 다 적용되는거같은데 안전이나 보안을 위해 사용 어플리케이션 계정마다 적용시켜준다

터미널을 다시 껏다키켜서 ulimit으로 확인해보면 바뀐것을 확인할 수 있다

혹시모르니 어플리케이션도 다시 재기동하자