반응형
1. ulimit이란?
ulimit은 프로세스의 자원 한도를 설정하는 명령어다. ulimit은 soft와 hard로 나뉜다.
soft는 새로운 프로그램을 생성했을 때 기본적으로 적용되는 자원 한도이다.
hard는 soft 자원 한도에서 최대로 늘릴 수 있는 한도이다.
2. ulimit 항목
# ulimit -aS // Soft 설정 확인
# ulimit -aH // Hard 설정 확인
core file size (blocks, -c) 0 : 코어파일의 최대크기
data seg size (kbytes, -d) unlimited : 프로세스의 데이터 세그먼트 최대크기
scheduling priority (-e) 0
file size (blocks, -f) unlimited :쉘에서 생성되는 파일일 최대크기
pending signals (-i) 14943
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited : resident set size의 최대 크기(메모리 최대크기)
open files (-n) 1024 : 한 프로세스에서 열 수 있는 open file descriptor의 최대 숫자(열수 있는 최대 파일 수) ,Too many open files error 발생시 해당값 조절해주면됨
pipe size (512 bytes, -p) 8 : 512-바이트 블럭의 파이프 크기
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited : 총 누적된 CPU 시간(초)
max user processes (-u) 1024 : 단일 유저가 사용가능한 프로세스의 최대 갯수
virtual memory (kbytes, -v) unlimited : 쉘에서 사용가능 한 가상 메모리의 최대 용량
file locks (-x) unlimited
3. ulimit 옵션
- -a : 모든 제한 사항을 보여준다.
- -c : 최대 코어 파일 사이즈를 보여준다.
- -d : 프로세스 데이터 세그먼트의 최대 크기를 보여준다.
- -f : 쉘에 의해 만들어질 수 있는 파일의 최대 크기를 보여준다.
- -s : 최대 스택 크기를 보여준다.
- -p : 파이프 크기를 보여준다.
- -n : open files의 최대 개수를 보여준다.
- -u : max user process의 최대 개수를 보여준다.
- -v : 최대 가상메모리의 양을 보여준다.
- -S : soft 자원 한도를 보여준다.
- -H : hard 자원 한도를 보여준다.
4. ulimit 설정
1) ulimit 명령을 통해 변경하기
(1) 옵션 n을 사용하여 open files 개수 수정하기
# ulimit -n 2048
(2) 옵션 u를 사용하여 max user process 개수를 수정하기
# ulimit -u 4096
2) /etc/security/limits.conf 설정 파일 수정하기 (유저 별로 설정이 가능하다.)
...
soft nproc 4096
hard nproc 4096
3) 확인
: 다시 로그인하거나 재부팅하면 기본 설정으로 적용된다.
반응형