본문으로 바로가기

[리눅스]File Descriptor 제한 수정

category 운영체제/리눅스 2017. 9. 26. 00:04
728x90
반응형

리눅스에서는 설정 파일을 변경하여 File Descriptor 제한을 수정할 수 있습니다.


리눅스는 모든 것이 파일로 관리 됩니다. 그러므로 이런 파일들에 접근하기 위해서는 File Descriptor라는 개념을 사용합니다.


File Descriptor란 프로그래밍에서 특정 파일에 접근하기 위한 추상적인 값입니다.


쉽게 말하면, 파이프, 소켓, 일반파일 등을 참조할 때 쓰입니다.


대표적인 파일스크립터로는 아래와 같은 것들이 있습니다.


파일디스크립터 

이름

스트림

 1

 표준 입력

 stdin

 2

 표준 출력

 stdout

 3

 표준 오류

 stderr


1. File Descriptor 제한 갯수 확인


리눅스에서는 각 계정마다 프로세스가 사용할 수 있는 File Descriptor의 갯수가 정해져 있습니다.


크게는 Soft limit, Hard limit로 분류할 수 있습니다.


Soft limit는 새로운 프로세스가 생성될 경우, 기본적으로 적용되는 값입니다.


Hard limit는 Soft limit부터 늘릴 수 있는 최대 값입니다.


1) Soft limit 확인


]# ulimit -aS

core file size          (blocks, -c) 0 

data seg size           (kbytes, -d) unlimited 

file size               (blocks, -f) unlimited 

pending signals                 (-i) 1024 

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 

stack size              (kbytes, -s) 10240 

cpu time               (seconds, -t) unlimited 

max user processes              (-u) 69632 

virtual memory          (kbytes, -v) unlimited 

file locks                      (-x) unlimited 


2) Hard limit 확인


]# ulimic -aH

core file size          (blocks, -c) 0 

data seg size           (kbytes, -d) unlimited 

file size               (blocks, -f) unlimited 

pending signals                 (-i) 1024 

max locked memory       (kbytes, -l) 32 

max memory size         (kbytes, -m) unlimited 

open files                      (-n) 2048 

pipe size            (512 bytes, -p) 8 

POSIX message queues     (bytes, -q) 819200 

stack size              (kbytes, -s) 10240 

cpu time               (seconds, -t) unlimited 

max user processes              (-u) 69632 

virtual memory          (kbytes, -v) unlimited 

file locks                      (-x) unlimited 



2. File Descriptor 수정


시스템에서 허용되는 최대 File Descriptor을 설정해보겠습니다.


]# cat /proc/sys/fs/file-max

123456

]# echo 32768 > /proc/sys/fs/file-max


위와 같이 수정하시면 됩니다.


감사합니다.










728x90
반응형