[리눅스] ulimit 설정 (Max user process, open files)

[리눅스] ulimit 설정 (Max user process, open files)

Ulimit이란?

사용자별(user) 프로세스의 자원 한도(Limit)를 설정하는 명령

soft한도, hard한도 두가지로 나뉨

Soft : 새로운 프로그램을 생성하면 기본(default)으로 적용되는 한도

Hard : 소프트한도에서 최대(Max)로 늘릴 수 있는 한도

자바프로세스의 JVM Server나 apache, tomcat 등의 프로세스를 기동중 OOM (Out Of Memory) 가 발생하였지만,

메모리 부족이 아닌경우, 커널에서 설정한 자원한도에 도달했기때문이므로,

Ulimit을 설정해주셔야 합니다.

Ulimit 조회

Ulimit [조회 옵션] 값

-a : 모든 제한 사항을 보여줌.

-c : 최대 코어 파일 사이즈

-d : 프로세스 데이터 세그먼트의 최대 크기

-f : shell에 의해 만들어질 수 있는 파일의 최대 크기

-s : 최대 스택 크기

-p : 파이프 크기

-n : 오픈 파일의 최대수

-u : 오픈파일의 최대수

-v : 최대 가상메모리의 양

-S : soft 한도

-H : hard 한도

Ulimit 항목내용

core file size : 코어파일의 최대크기

data seg size : 프로세스의 데이터 세그먼트 최대크기

scheduling priority : 쉘에서 생성되는 파일의 최대 크기

max memory size : resident set size의 최대 크기(메모리 최대크기)

open files : 한 프로세스에서 열 수 있는 open file descriptor의 최대 숫자(열수 있는 최대 파일 수)

pipe size : 512-바이트 블럭의 파이프 크기

cpu time : 총 누적된 CPU 시간(초)

max user processes : 단일 유저가 사용가능한 프로세스의 최대 갯수

virtual memory : 쉘에서 사용가능 한 가상 메모리의 최대 용량

Open Files 설정

- open files : 한 프로세스에서 열 수 있는 open file descriptor의 최대 숫자 (열수 있는 최대 파일 수)

1) 즉시 설정 : ulimit -SHn 65535

2) 영구 설정 :

# /etc/security/limits.conf 수정 # user 사용자 user soft nofile 65535 user hard nofile 65535 # 모든(*) 사용자 * soft nofile 65535 * hard nofile 65535

Max User Processes 설정

- max user processes : 단일 유저가 사용가능한 프로세스의 최대 갯수

1) 즉시 설정 : ulimit -SHu 65535

2) 영구 설정 :

# /etc/security/limits.conf 수정 #user 사용자 user soft nproc 65535 user hard nproc 65535 # 모든(*) 사용자 * soft nproc 65535 * hard nproc 65535

from http://bangu4.tistory.com/138 by ccl(A) rewrite - 2021-03-16 00:26:51