본문 바로가기

리눅스

[Linux] open file 개수 늘리기(소스 수정후 커널컴파일)


서버를 첨에 설치하고 컴파일을 할때 추가하는 설정 내용
보통 일반적인 설정으로도 괸찬지만.. 대용량 서버를 위한 open file 개수등도 미리 조절하는게 좋지 않을까?

linux#ulimit -a
[root@naverdn3 ~]# ulimit -a
core file size                 (blocks, -c) 0
data seg size                (kbytes, -d) unlimited
scheduling priority                     (-e) 0
file size                         (blocks, -f) unlimited
pending signals                         (-i) 32764
max locked memory         (kbytes, -l) 32
max memory size          (kbytes, -m) unlimited
open files                                (-n) 1024
pipe size                 (512 bytes, -p) 8
POSIX message queues  (bytes, -q) 819200
real-time priority                        (-r) 0
stack size                    (kbytes, -s) 10240
cpu time                    (seconds, -t) unlimited
max user processes                 (-u) 32764
virtual memory               (kbytes, -v) unlimited
file locks                                 (-x) unlimited

컴파일시 소스 디렉토리에서
vi include/linux/fs.h
25 #define INR_OPEN 32767          ## (1024 ->32767)
56 #define NR_FILE  32768            ## (8194 -> 32768)

vi include/linux/limit.h
4 #define NR_OPEN         32767     ## (1024 -> 32767)

위와 같이 수정하면.. open file 개수가 늘어난다.  
물론 수정후 커널 컴파일을 해야 적용이 된다. 

추가로 컴파일 할때 include/net/tcp.h 에서
107 #define TCP_TIMEWAIT_LEN (1*HZ)         ## (60*HZ -> 1*HZ)
로 수정하면 timewait 시간이 줄어든다.