특정 프로세스에 대한 메모리 제한을 설정하는 방법은 무엇입니까?


10

mpiexec -16 ...384GB RAM 서버에서 실행 을 시도했지만 OOM Killer가 발생하여 중단되었습니다.

mpiexec실행을 위한 메모리 제한을 어떻게 설정 합니까?

알고 ulimit있지만 다른 프로세스에 영향을 줄 수 있습니다.

감사합니다.

답변:


9

나는 이것을 사용하여 할 수 있다고 생각한다 cgroups:

mpigroup메모리 제한 (예 : 50GB)으로 이름이 지정된 (또는 선택한 이름) cgroup을 만듭니다 .

cgcreate -g memory,cpu:mpigroup
cgset -r memory.limit_in_bytes=$((50*1024*1024*1024)) mpigroup

그런 다음 mpiexec가 이미 실행중인 경우이 cgroup으로 가져 오십시오.

cgclassify -g memory,cpu:mpigroup $(pidof mpiexec)

또는 mpiexec이 cgroup 내에서 실행 하십시오.

cgexec -g memory,cpu:mpigroup mpiexec -16 ...

memory컨트롤러로는 충분 하지 않아야합니다 cgcreate -g memory:mpigroup.
heemayl

@heemayl이어야합니다. 나는이 예제를 위키에서 바로 들어 올렸다
muru

설정은 / sys / fs / cgroup / memory /에 저장되며 sudo를 사용하지 않는 동안에도 실패하지 않더라도 sudo가 작동해야합니다.
Aquarius Power

나는 실제 메모리를 2GB로 제한하고 완벽하게 작동했지만 가상 메모리는 여전히 8GB로 가고 있었지만 와인 게임은 다른 모든 Linux 응용 프로그램을 스왑으로 보내는 대신 스왑을 사용하기 때문에 완전히 괜찮 았습니다. 전체 시스템이 더 잘 작동합니다! 고마워!
물병 자리 힘
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.