2008년 01월 28일
Too many open files 에러 대처 방법
1. ROR(Ruby on rails)로 서비스를 하고 세션데이터를 memcached에 저장한다.
그런데 memcached에서 에러메세지를 내면서 로그가 풀나면서 저장소 용량 부족으로
서버가 다운되었다.
에러 내용은 accept(): Too many open files 이다.
이럴 경우 운영체제 자체의 FD 사이즈를 늘려주어야 한다.
~# ulimit -a
core file size (blocks) 0
data seg size (kbytes) unlimited
file size (blocks) unlimited
max memory size (kbytes) unlimited
stack size (kbytes) 8192
cpu time (seconds) unlimited
max user processes 2048
pipe size (512 bytes) 8
open files 1024
virtual memory (kbytes) 2105343
2. 현재 프로세스의 열린 파일 수(소켓포함) 는 아래의 명령어로 알아 볼 수 있다.
~# lsof -p PID | wc -l
3. 해결 방법
(1) ~# ulimit -n 2048
OR
(2) 리눅스환경을 기준으로 설명한다. truefeel 사용자의 open files개수를 4096(sort limit),
6144(hard limit) 로 제한한다면 /etc/security/limits.conf에 다음 줄을 추가해주면 로긴시 적용된다.
나의 경우 첫번째 방법을 적용하였다.
그런데 memcached에서 에러메세지를 내면서 로그가 풀나면서 저장소 용량 부족으로
서버가 다운되었다.
에러 내용은 accept(): Too many open files 이다.
이럴 경우 운영체제 자체의 FD 사이즈를 늘려주어야 한다.
~# ulimit -a
core file size (blocks) 0
data seg size (kbytes) unlimited
file size (blocks) unlimited
max memory size (kbytes) unlimited
stack size (kbytes) 8192
cpu time (seconds) unlimited
max user processes 2048
pipe size (512 bytes) 8
open files 1024
virtual memory (kbytes) 2105343
2. 현재 프로세스의 열린 파일 수(소켓포함) 는 아래의 명령어로 알아 볼 수 있다.
~# lsof -p PID | wc -l
3. 해결 방법
(1) ~# ulimit -n 2048
OR
(2) 리눅스환경을 기준으로 설명한다. truefeel 사용자의 open files개수를 4096(sort limit),
6144(hard limit) 로 제한한다면 /etc/security/limits.conf에 다음 줄을 추가해주면 로긴시 적용된다.
| truefeel soft nofile 4096 truefeel hard nofile 6144 |
이 글과 관련있는 글을 자동검색한 결과입니다 [?]
- [책] Ruby on Rails by 다롱디리
- Ruby on Rails, Mysql에서 Oracle로 이동하면서 한 삽질의 기록. by 오리대마왕
- Ruby/RubyOnRails IDE 비교? by 권남
- 가까이 하기엔 너무나 먼 당신2 - Eclipse RDT,RadRails 설치 by coffeejava
# by | 2008/01/28 15:45 | 트랙백 | 덧글(0)






☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]