2009-06-09 3 views
7

Linux 시스템에서 실행되는 Perl 스크립트의 메모리 사용을 제한하고 싶습니다. BSD::Resourcesetrlimit을 사용하려고했지만 문제가 발생했습니다. 나는 어떤 조언을 주셔서 감사하겠습니다. 고맙습니다.Linux에서 프로세스 메모리 사용을 제한하는 방법 (예 : BSD :: Resource 사용)

+0

문제를 설명해 주시겠습니까? 한도를 예방하거나 일으키려고합니까? – ysth

+0

하드 한도가 아닌 소프트 한도를 추가하십시오. –

답변

7

코드를 개발할 때 Perl 프로그램을 실행하고 메모리를 모두 소비하는 것은 쉽습니다. 프로그램이 메모리를 소모하고 죽을 때까지 기계는 정지 할 것입니다. 이 문제를 방지 할 수 있습니다

사용이 코드 :

use BSD::Resource; 
setrlimit(get_rlimits()->{RLIMIT_VMEM}, 1_000_000_000, -1) or die; 
1; 

내가 limit.pm에서이 코드를 넣어 (따라서 "1;"). 그러면 내가 말하고자하는 프로그램의 상단에

등이 있습니다.

+0

Python과도 잘 작동합니다. :) – Joril

+0

@Joril 어떻게 Python에서 작동합니까? – alvas

+1

@alvas : resource.setrlimit (resource.RLIMIT_RSS, (megs * 1048576L, -1L))을 사용하고 있습니다. – Joril

3

Scott Corely은 perl 스크립트를 실행하기 전에 ulimit으로 설정하는 것이 좋습니다.

관련 문제