Skip to content

linux ulimit commends 사용하여 자원 제한 #14

@sypark9646

Description

@sypark9646

ulimit명령어를 이용하여 프로세스들에 대한 시스템자원사용을 제한할수 있다.
하지만 ulimit명령어를 사용하면 커널의 성능과 기능에 막대한 영향을 주게 되므로 사용시에 주의해야 한다.

  • ulimit명령어로 설정가능한 시스템자원 제한사항
    1. 코어(core)파일 생성시 최대 크기 제한
    2. 쉘에 의해 만들어질 수 있는 파일의 최대크기 제한
    3. 한 사용자에게 허용 가능한 프로세스(user processes)의 최대 개수 제한
    4. 쉘에 허용 가능한 가상메모리(virtual memory)의 최대량 제한
    5. 오픈할수 있는 파일기술자(FD: file descriptor)의 최대 개수 제한
    6. 스택크기(stack size)의 최대크기 제한
    7. 초(second)당 사용 가능한 CPU의 최대 허용 시간(cpu time) 제한
    8. 메모리에 상주(resident set size)할수 있는 최대 크기 제한
    9. 512byte 블록단위로 파이프크기(pipe size)설정
    10. 프로세스 데이터세그먼트(process data segment)의 최대 크기 제한

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

  • 하드웨어적인제한(H)과 소프트웨어적인제한(S)
    하드웨어적인 제한이란, 일반적으로 소프트웨어적인 제한이 넘어갈수 없는 제한을 말한다.
    소프트웨어적인 제한이란, 사용자가 일반적으로 제한사항을 지정하여 지정하여 자원사용을 제한하는것을 말한다.

시스템의 하드웨어적인 제한사항을 모두 보려면 "-Ha"옵션을 사용하면 되며,
소프트웨어적인 제한사항을 모두 확인하려면 "-Sa"옵션을 사용하면 된다.
"H", "S"를 주지 않고 "-a"옵션만을 사용하면 소프트웨어적인 제한사항을 보여 준다

※ ulimit의 설정값을 변경후 재부팅을 하게 되면 설정값은 초기화가 된다.
따라서 .bash_profile에 명령어를 설정하거나, /etc/profile파일에 설정명령어를 넣어두면 재부팅시에도 해당값이 유지가 된다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions