Linuxpia/Linux 명령어

[리눅스 명령어] 사용 자원을 제한, ulimit

Linuxpia4U 2024. 1. 30. 03:53
반응형

리눅스 시스템 사용 자원을 제한, ulimit

Linux에서 ulimit 명령은 사용자 프로세스에 적용되는 리소스 제한을 제어하는 데 사용됩니다. 이 명령은 쉘 세션에서 프로세스가 소비할 수 있는 리소스의 양을 제한하여 시스템의 안정성을 유지하는 데 도움을 줍니다. ulimit는 주로 시스템 관리자에 의해 사용되며, 리소스의 과도한 사용을 방지하고 시스템 오버로드를 예방하는 데 중요한 역할을 합니다.

기본 사용법

ulimit 명령의 기본 구문은 다음과 같습니다:

ulimit [옵션]

주요 옵션

  • -a: 모든 현재 제한을 보여줍니다.
  • -n: 열 수 있는 파일의 최대 수를 설정하거나 표시합니다.
  • -u: 사용자 프로세스의 최대 수를 설정하거나 표시합니다.
  • -m: 최대 메모리 크기를 설정하거나 표시합니다.
  • -s: 스택 크기를 설정하거나 표시합니다.

caption: 'ulimit -a' 실행

더보기

위스크린샷은 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개로 제한합니다.

예시

  1. 현재 모든 제한 보기: 
  2. ulimit -a
  3. 열 수 있는 최대 파일 수 설정:
    ulimit -n 2048
  4. 사용자 프로세스의 최대 수 설정:
    ulimit -u 1500

제한사항 및 고려사항

  • ulimit 설정은 현재 쉘 세션과 그 자식 프로세스에만 영향을 미칩니다.
  • 일부 제한은 일반 사용자가 아닌 루트 사용자(root user)만 변경할 수 있습니다.
  • 설정된 제한은 시스템 재부팅 시 초기화될 수 있으므로, 영구적인 변경을 위해서는 시스템 설정 파일을 수정해야 합니다.

정리

  • ulimit는 사용자 프로세스의 리소스 사용을 제한하는 데 사용됩니다.
  • 파일 열기 제한, 프로세스 수, 메모리 사용량 등 다양한 리소스에 대한 제한을 설정할 수 있습니다.
  • 이러한 제한은 시스템의 안정성을 유지하고 리소스 낭비를 방지하는 데 중요합니다.

ulimit 명령은 Linux 시스템의 리소스 관리에 필수적인 도구로, 시스템의 성능과 안정성을 유지하는 데 중요한 역할을 합니다.

반응형