728x90
리눅스에서 ulimit을 설정하는 방법
- 현재 세션에서만 유효한 임시 설정
- 시스템 부팅 시부터 적용되는 영구 설정
- 재부팅 또는 세션 재시작
1. 현재 세션에서만 유효한 임시 설정
현재 세션에서만 유효한 임시 설정은 ulimit 명령어를 사용하여 설정할 수 있습니다.
ulimit -(H 또는 S) (옵션) (값)
-H는 하드 리밋을 설정하는 옵션이고, -S는 소프트 리밋을 설정하는 옵션입니다. 옵션은 ulimit의 종류를 지정하는 것으로, 다음과 같은 종류가 있습니다.
- nofile : 열린 파일의 최대 개수
- 현재 세션에서 사용자의 최대 파일 디스크립터 수를 65535로 설정합니다. 이 변경 사항은 현재 세션에서만 적용되며 세션이 종료되면 리셋됩니다.
ulimit -n 65535
- nproc : 프로세스의 최대 개수
- 현재 세션에서 사용자의 최대 실행 가능한 프로세스 수를 65535로 설정합니다. 마찬가지로 이 변경은 현재 세션에만 적용됩니다.
ulimit -u 65535
- memlock : 메모리 고정 크기
- 현재 세션에서 사용자가 락할 수 있는 메모리를 무제한으로 설정합니다.
ulimit -l unlimited
값은 설정하고자 하는 값을 입력합니다.
예를 들어, 현재 세션에서 nofile의 하드 리밋을 1024로 설정하려면 다음과 같이 입력합니다.
ulimit -H nofile 1024
2. 시스템 부팅 시부터 적용되는 영구 설정
시스템 부팅 시부터 적용되는 영구 설정은 /etc/security/limits.conf 파일을 수정하여 설정할 수 있습니다.
/etc/security/limits.conf 파일은 다음과 같은 형식으로 되어 있습니다.
<유저> <하드 리밋> <소프트 리밋>
예를 들어, root 사용자의 nofile의 하드 리밋을 1024로 설정하려면 다음과 같이 입력합니다.
root soft nofile 1024
root hard nofile 1024
/etc/security/limits.conf 파일을 수정한 후에는 ulimit -a 명령어를 사용하여 설정된 값이 올바르게 적용되었는지 확인해야 합니다.
- nofile(최대 파일 디스크립터 수)
- nofile은 열린 파일의 최대 개수를 제한하는 리밋입니다. nofile의 하드 리밋이 설정되어 있는 경우, 프로세스는 하드 리밋을 초과하여 열린 파일을 생성할 수 없습니다.
* hard nofile 65535
* soft nofile 65535
- nproc(최대 프로세스 수)
- nproc는 프로세스의 최대 개수를 제한하는 리밋입니다. nproc의 하드 리밋이 설정되어 있는 경우, 프로세스는 하드 리밋을 초과하여 프로세스를 생성할 수 없습니다.
* hard nproc 65535
* soft nproc 65535
- memlock(메모리 락)
- memlock은 메모리 고정 크기를 제한하는 리밋입니다. memlock의 하드 리밋이 설정되어 있는 경우, 프로세스는 하드 리밋을 초과하여 메모리를 고정할 수 없습니다.
* hard memlock unlimited
* soft memlock unlimited
- 권장 설정
- 리눅스 시스템에서 ulimit을 설정할 때는 다음과 같은 권장 설정을 참고할 수 있습니다.
- nofile: 2048 이상
- nproc: 1024 이상
- memlock: 1024MB 이상
- 리눅스 시스템에서 ulimit을 설정할 때는 다음과 같은 권장 설정을 참고할 수 있습니다.
물론, 시스템의 사용 환경에 따라 적절한 값을 설정해야 합니다.
3. 재부팅 또는 세션 재시작
- 변경 사항이 영구적으로 적용되려면 재부팅이나 세션 재시작이 필요할 수 있습니다.
- limits.conf 파일을 수정한 후에는 로그아웃하고 다시 로그인하여 변경 사항을 적용할 수 있습니다.
ulimit은 시스템 자원의 사용량을 제한하는 데 사용되므로, 변경 사항을 신중하게 적용하고 테스트하는 것이 좋습니다.
728x90
'리눅스' 카테고리의 다른 글
우분투에서 Grafana, InfluxDB 2, Telegraf를 설치하고 구성하는 방법 (0) | 2023.12.04 |
---|---|
우분투에서 lsyncd를 사용하여 디렉토리 간에 변경 사항을 실시간으로 동기화하는 방법 (0) | 2023.12.01 |
웹 서버의 성능을 향상시키기 위한 커널 파라미터 튜닝하는 방법 (0) | 2023.11.30 |
[draft] lsattr 명령어와 chattr 명령어 (0) | 2023.11.30 |
rev 명령어 (0) | 2023.11.29 |