때때로 내 GNU/Linux 데스크탑의 특정 프로세스(예: gv 및 gnash)가 물리적 메모리를 소모하고 시스템 스래싱을 유발합니다. 이러한 프로세스는 중요하지 않기 때문에 너무 많은 메모리를 사용하면 자동으로 종료되기를 원합니다.
이 용도로 /etc/security/limits.conf 파일과 -v 옵션을 사용할 수 있다고 생각합니다. 문제는 특정 사용자에 대해 프로세스당 사용 가능한 메모리 양을 제한하는지 아니면 해당 사용자의 모든 프로세스를 결합하여 제한하는지 여부입니다. 또한 다시 시작하지 않고 이 파일을 유효하게 만드는 방법도 묻고 싶습니다.
답변1
메커니즘 도 있습니다 ulimit
. 제한할 수 있는 모든 것을 볼 수 있는 시스템 호출(Linux에서는 C 라이브러리 함수) ulimit(3)
과 Bash 내장 ulimit
Type이 있습니다. ulimit -a
현재 가상 메모리 제한을 살펴보겠습니다 ulimit -v
. 이라고 말하면 설정할 수 있습니다 ulimit -v INTEGER-KILOBYTES
.
달리기는 ulimit
당신의 모든 것을 변화시킬 것입니다현재의셸에서는 현재 값보다 작은 값만 선택할 수 있습니다. 제한된 가상 메모리로 명령을 실행하려면 Bash 하위 셸을 사용할 수 있습니다.
( ulimit -v 131072; some-app )
답변2
Limit.conf는 사용자 예에서 작동합니다: oracle Soft memlock 3145728 oracle hard memlock 3145728
그렇지 않고, 프로세스별 제한을 찾고 있다면.. 영구적인 효과를 보려면 sysctl -a를 보십시오.. sysctl.conf에 매개변수를 추가할 수 있습니다.
행운을 빌어요