웹사이트 검색

Linux에서 프로세스의 시간 및 메모리 사용을 제한하는 방법


timeout 스크립트는 Linux에서 프로세스의 시간과 메모리 소비를 제한하는 데 유용한 리소스 모니터링 프로그램입니다. 이를 통해 통제하에 프로그램을 실행하고 시간 및 메모리 제한을 적용하여 이러한 매개 변수를 위반하면 프로그램을 종료할 수 있습니다.

설치가 필요하지 않습니다. timeout 프로그램을 사용하여 인수와 함께 명령을 실행하면 명령의 메모리와 시간 소비를 모니터링하여 제한을 벗어나면 프로세스를 중단하고 사전 정의된 내용으로 알려줍니다. 메시지.

이 스크립트를 실행하려면 Linux 시스템에 Perl 5가 설치되어 있고 /proc 파일 시스템이 마운트되어 있어야 합니다.

Linux 시스템에 설치된 Perl 버전을 확인하려면 다음 명령을 실행하세요.

perl -v

그런 다음 git 명령을 사용하여 timeout 저장소를 시스템에 복제한 다음 cd 명령을 사용하여 로컬 저장소로 이동하고 일반적인 Linux 명령으로 호출합니다.

cd ~/bin
git clone https://github.com/pshved/timeout.git
cd timeout

이제 timeout 스크립트가 어떻게 작동하는지 살펴보겠습니다.

기본 메모리 제한(가상 메모리 100M):

이 첫 번째 예는 -m 플래그를 사용하여 프로세스의 메모리 사용량을 가상 메모리 100M로 제한하는 방법을 보여줍니다. 메모리의 기본 단위는 킬로바이트입니다.

여기서 스트레스-ng 명령은 10분 동안 사용 가능한 메모리의 40%를 사용하도록 결합된 4개의 가상 메모리 스트레스 요인(VMS)을 실행합니다. 따라서 각 스트레스 요인은 사용 가능한 메모리의 10%를 사용합니다.

./timeout -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

위의 timeout 명령 출력을 고려하면 stress-ng 작업자 프로세스는 단 1.16초 후에 종료되었습니다. 이는 VMS(438660킬로바이트)의 총 메모리 소비량이 stress-ng 및 해당 하위 항목에 허용되는 가상 메모리 사용량보다 크기 때문입니다. 프로세스.

기본 프로세스 시간 제한:

프로세스 시간 제한을 활성화하려면 표시된 대로 -t 플래그를 사용하십시오.

./timeout -t 4 stress-ng --vm 4 --vm-bytes 40% -t 10m

위의 예에서 stress-ng CPU+SYS 시간이 정의된 값 4을 초과하면 작업자 프로세스가 종료됩니다.

프로세스 시간과 메모리 모두 제한

다음과 같이 메모리시간을 동시에 제한할 수도 있습니다.

./timeout -t 4 -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

Timeout은 끊김 감지를 활성화하는 --Detect-hangups와 같은 일부 고급 옵션도 지원합니다.

./timeout --detect-hangups -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

--memlimit-rss 또는 -s 스위치를 사용하여 RSS(상주 세트 크기) 메모리 제한을 모니터링할 수 있습니다. .

./timeout -m 100000 -s  stress-ng --vm 4 --vm-bytes 40% -t 10m

또한 프로세스의 종료 코드나 signal+128을 반환하려면 표시된 대로 --confess 또는 -c 옵션을 사용하세요.

./timeout -m 100000 -c  stress-ng --vm 4 --vm-bytes 40% -t 10m

자세한 내용 및 사용 예는 timeout Github 저장소(https://github.com/pshved/timeout)를 참조하세요.

다음 관련 기사도 마찬가지로 유용할 수 있습니다.

  1. 배치 모드에서 'top'을 사용하여 메모리 사용량 기준 상위 15개 프로세스를 찾는 방법
  2. CPUTool - Linux에서 모든 프로세스의 CPU 사용률을 제한하고 제어합니다.
  3. CPULimit 도구를 사용하여 Linux에서 프로세스의 CPU 사용량을 제한하는 방법

timeout 스크립트는 Linux에서 프로세스의 시간과 메모리 소비를 근본적으로 제한하는 간단한 리소스 모니터링 프로그램입니다. 아래 의견 양식을 통해 timeout 스크립트에 대한 피드백을 제공할 수 있습니다.