강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

ulimit 실무1편 : 프로세스들의 시스템자원사용을 제한하는 ulimit 개론

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

ulimit 실무1편: 프로세스들의 시스템자원사용을 제한하는 ulimit 개론

 

 

 

 

 

시스템에는 많은 프로세스들이 존재한다.

 

 

 

 현재 실행중인 프로세스가 있고 휴지상태인 프로세스도 있다.

 

 

 

 이런 프로세스들은 많든 적든 시스템의 자원들을 사용하고 있다.

 

 

 

 자원이라고 해서 어렵게 생각할 것없이 그냥 CPU, MEMORY, DISK등이 시스템 자원이라고 생각하면 된다.

 

 

 

 정리해서 얘기하면 다음과 같다.

 

 

 

 리눅스시스템에 실행되어있는 모든 프로세스들은 시스템자원을 사용하고 있으며 ulimit이라는 것을 이용하여 프로세스들의 특정자원사용하는 것을 제한할 수 있다.

 

 

 

 자원사용을 적절히 제한해야 하는 이유는 한 프로세스가 특정자원을 모두 사용한다면 심각한 시스템장애가 발생할 수 있기 때문이다.

 

 

 

 , 이제 ulimit을 이용하여 프로세스들의 자원사용제한하는 방법에 대해서 알아보도록 하자. 하지만  ulimit을 사용하면 커널의 성능과 기능에 막대한 영향을 주게 되므로 사용시에 주의해야 한다.

 

 

 

ulimit으로 설정 가능한 시스템의 자원들에 대한 사항을 확인하였듯이 이 명령어의 사용은 운영체제(kernel)의 실행에 결정적인 요인으로 작용할 수도 있기 때문에 설정할 때에는 시스템 상황을 정확하게 파악하여 설정결과에 대해서 미리 예측하신 후에 사용해야 한다.

 

 

 

  

 

다음은 현재 시스템자원의 제한사항을 ulimit으로 확인해 본 것이다.

 

 

 

 , (SHELL)과 사용자의 프로세스에 대한 시스템 자원사용을 제한하는 ulimit명령어로 현재 시스템 제한사항을 확인할 수 있다.

 

 

 

 , ulimit명령어에 -a옵션을 사용하면 시스템 자원 사용의 제한사항을 다음과 같이 출력한다.

 

 

 

 다음은 필자가 사용하고 있는 리눅스시스템의 자원사용 제한에 대한 결과를 확인하기 위하여 ulimit명령어에 -a옵션을 사용한 결과이다.

 

 

 

 

 

[root@RockyLinux01 /]# ulimit -a

real-time non-blocking time  (microseconds, -R) unlimited

core file size              (blocks, -c) 0

data seg size               (kbytes, -d) unlimited

scheduling priority                 (-e) 0

file size                   (blocks, -f) unlimited

pending signals                     (-i) 7622

max locked memory           (kbytes, -l) 64

max memory size             (kbytes, -m) unlimited

open files                          (-n) 1024

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) 7622

virtual memory              (kbytes, -v) unlimited

file locks                          (-x) unlimited

[root@RockyLinux01 /]#

 

 

 

 

위의 결과로 알 수 있는 것은 현재 시스템의

 

코어파일 최대크기(core file size),

 

데이터세그먼트의 최대크기(data seg size),

 

생성 가능한 파일의 최대크기(file size),

 

메모리에 상주 가능한 최대크기(max memory size),

 

오픈 가능한 파일의 최대크기(open files),

 

스택크기의 제한사항(stack size),

 

초당 최대 CPU사용시간(cpu time),

 

사용자가 생성할 수 있는 프로세스의 최대 개수(max user processes)

 

쉘에 허용되는 가상메모리의 최대크기(virtual memory)등을 확인할 수 있다.

 

 

 

 

 

위의 -a옵션사용은 기본적으로 소프트적인 제한사항을 출력한 것이다.

 

 

 

 , -a옵션과 함께 사용 가능한 옵션으로 H S가 있다.

 

 

 

 H는 설정값이상 절대 허용되지 않는 하드웨어적인 제한사항을 의미하며 S옵션은 하드웨어적인 설정값까지 허용되는 소프트적인 제한사항을 의미한다.

 

 

 

 

 

, -a옵션으로 현재 설정값을 확인할 때에 H옵션을 함께 사용하면 하드웨어적인 제한 값들을 보여주고 S옵션을 함께 사용하거나 H S둘 중 아무런 옵션도 사용하지 않으면 소프트웨어적인 제한 값을 출력한다.

 

 

 

  

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  86 명