리눅스 시스템 사용 자원을 제한, ulimit
Linux에서 ulimit
명령은 사용자 프로세스에 적용되는 리소스 제한을 제어하는 데 사용됩니다. 이 명령은 쉘 세션에서 프로세스가 소비할 수 있는 리소스의 양을 제한하여 시스템의 안정성을 유지하는 데 도움을 줍니다. ulimit
는 주로 시스템 관리자에 의해 사용되며, 리소스의 과도한 사용을 방지하고 시스템 오버로드를 예방하는 데 중요한 역할을 합니다.
기본 사용법
ulimit
명령의 기본 구문은 다음과 같습니다:
ulimit [옵션]
주요 옵션
-a
: 모든 현재 제한을 보여줍니다.-n
: 열 수 있는 파일의 최대 수를 설정하거나 표시합니다.-u
: 사용자 프로세스의 최대 수를 설정하거나 표시합니다.-m
: 최대 메모리 크기를 설정하거나 표시합니다.-s
: 스택 크기를 설정하거나 표시합니다.
위스크린샷은 Linux 터미널에서 ulimit -a 명령을 실행한 결과를 보여줍니다. 이 명령은 현재 사용자 세션에 대한 모든 리소스 제한을 나열합니다. 여기서 각 라인은 특정 리소스에 대한 제한을 설명하며, 그 값은 해당 리소스가 할당받을 수 있는 최대치를 나타냅니다.
다음은 스크린샷에 나타난 주요 리소스 제한들입니다:
- real-time non-blocking time: 실시간 비블로킹 시간 제한이 무제한입니다.
- core file size: 코어 덤프 파일의 크기 제한이 0블록입니다. 즉, 코어 덤프를 생성하지 않도록 설정되어 있습니다.
- data seg size: 데이터 세그먼트 크기 제한이 무제한입니다.
- scheduling priority: 스케줄링 우선 순위 변경이 0으로 설정되어 있습니다.
- file size: 파일 크기 제한이 무제한입니다.
- pending signals: 대기중인 시그널의 최대 수가 14920입니다.
- max locked memory: 메모리 잠금의 최대 크기가 493932 킬로바이트입니다.
- max memory size: 메모리 사용량의 최대 크기가 무제한입니다.
- open files: 열 수 있는 파일의 최대 수가 1024입니다.
- pipe size: 파이프 크기가 8 (512 바이트 단위)입니다.
- POSIX message queues: POSIX 메시지 큐의 최대 크기가 819200 바이트입니다.
- stack size: 스택 크기가 8192 킬로바이트로 설정되어 있습니다.
- cpu time: CPU 사용 시간 제한이 무제한입니다.
- max user processes: 사용자 프로세스의 최대 수가 14920입니다.
- virtual memory: 가상 메모리 사용량의 최대 크기가 무제한입니다.
- file locks: 파일 잠금의 최대 수가 무제한입니다.
이 정보는 시스템 관리자가 시스템의 리소스 사용을 모니터링하고 필요에 따라 제한을 조정하는 데 유용합니다. 예를 들어, 열 수 있는 파일의 수를 늘리거나 줄이고 싶다면 ulimit -n 값을 조정하여 변경할 수 있습니다. 또한, 사용자 프로세스의 수가 너무 높다고 판단되면 ulimit -u 값을 낮추어 시스템의 안정성을 보장할 수 있습니다.
이 설정들은 현재 쉘 세션에만 적용되며, 시스템 전반에 걸쳐 영구적인 변경을 원한다면 시스템의 관련 설정 파일을 수정해야 합니다. 예를 들어, /etc/security/limits.conf 파일은 PAM(Puggable Authentication Modules)을 사용하여 사용자별 또는 그룹별 리소스 제한을 설정하는 데 사용됩니다.
옵션 뒤에 숫자를 추가하여 특정 리소스에 대한 제한을 설정할 수 있습니다. 예를 들어, ulimit -n 1024
는 한 사용자가 열 수 있는 최대 파일 수를 1024개로 제한합니다.
예시
- 현재 모든 제한 보기:
ulimit -a
- 열 수 있는 최대 파일 수 설정:
ulimit -n 2048
- 사용자 프로세스의 최대 수 설정:
ulimit -u 1500
제한사항 및 고려사항
ulimit
설정은 현재 쉘 세션과 그 자식 프로세스에만 영향을 미칩니다.- 일부 제한은 일반 사용자가 아닌 루트 사용자(root user)만 변경할 수 있습니다.
- 설정된 제한은 시스템 재부팅 시 초기화될 수 있으므로, 영구적인 변경을 위해서는 시스템 설정 파일을 수정해야 합니다.
정리
ulimit
는 사용자 프로세스의 리소스 사용을 제한하는 데 사용됩니다.- 파일 열기 제한, 프로세스 수, 메모리 사용량 등 다양한 리소스에 대한 제한을 설정할 수 있습니다.
- 이러한 제한은 시스템의 안정성을 유지하고 리소스 낭비를 방지하는 데 중요합니다.
ulimit
명령은 Linux 시스템의 리소스 관리에 필수적인 도구로, 시스템의 성능과 안정성을 유지하는 데 중요한 역할을 합니다.
'Linuxpia > Linux 명령어' 카테고리의 다른 글
[리눅스 명령어] 연결된 장치를 해제하는 umount (129) | 2024.02.01 |
---|---|
[리눅스 명령어] 마스크 모드 설정하기, umask (91) | 2024.01.31 |
[리눅스 명령어] 유형을 알아 보기, type (111) | 2024.01.29 |
[리눅스 명령어] 문자열 바꿔주기, tr (94) | 2024.01.28 |
[리눅스 명령어] 명령어 top 사용 사례 (99) | 2024.01.27 |