본문 바로가기
Old Posts/Linux

[Linux] ulimit 옵션 사용법 및 설정법

by A6K 2021. 3. 2.

시스템 리소스를 질서있게 사용하려면 시스템에서 동작하는 프로세서의 자원 사용 한도를 명확하게 정해둬야한다. 마치 어린이보호 구역에서는 30km/h 이하의 속도로 달리고 고속도로에서는 100km/h로 달리도록 정해놓는 것과 같다.

리눅스 시스템에도 여러가지 자원 사용의 한계값(limit)이 정해져 있다. 시스템 리소스의 한계값에는 'soft limit'과 'hard limit'이 있다. soft limit은 프로세스가 생성되면 기본적으로 적용되는 한도 값이다. 이 값은 변경될 수 있다. hard limit은 soft limit에서 최대로 늘릴 수 있는 값으로 시스템의 수퍼 유저만 바꿀 수 있다.

리눅스 시스템에서 자원의 한계 값을 확인하고 설정할 수 있는 명령어로 ulimit을 알아둬야한다.

ulimit 조회

ulimit은 리눅스의 limit 값을 조회하고 설정할 수 있는 명령이다. ulimit 명령의 옵션과 설명은 다음과 같다.

옵션 설명
-a 모든 제한(limit) 사항을 출력
-c 최대 코어 파일 사이즈
-d 프로세스 데이터 세그먼트의 최대 크기
-f 쉘(Shell)에 의해 만들어질 수 있는 파일의 최대 크기
-H Hard Limit 값을 출력
-s 최대 스택 크기
-S Soft Limit 값을 출력
-p 파이프 크기
-n 오픈 파일의 최대 수
-u 사용자당 실행 프로세스의 최대 수 
-v 최대 가상 메모리의 양

-S 옵션을 기본값으로 별도의 명시가 없으면 soft limit 값을 출력한다.

예를 들어

ulimit -a

명령어는 

ulimit -Sa

와 같다.

Hard Limit 값을 조회하기 위해서는

ulimit -Ha

를 실행하면 된다.

$ 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) 7422
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1048576
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

ulimit 설정

시스템 리소스 제한 값을 적당한 값으로 조절할 수 있다.

1. ulimit 명령을 이용

시스템 리소스 제한 값을 조회했던 ulimit 명령과 옵션 뒤에 설정하려는 값을 입력하면 시스템 리소스 제한 값을 업데이트할 수 있다. 예를 들어 오픈 파일 개수 제한을 업데이트하려면

# ulimit -n 2048

이런 식으로 입력하면 된다.

2. /etc/security/limits.conf 파일 수정

시스템의 리소스 제한과 관련된 값은 /etc/securyti/limits.conf 파일에 지정할 수 있다. 이 때, 시스템 리소스 제한을 사용자 별로 지정할 수 있다.

예를 들어 실행 가능한 프로세스의 개수제한을 다음과 같이 설정할 수 있다.

#<domain>      <type>  <item>         <value>

user           soft    nproc          4096
user           hard    nproc          4096

#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4
# End of file

파일에 작성 방법에 대한 간략한 설명이 나와있으니 참고하면 된다.

 

댓글