메모리가 소진되었을 때 시스템이 정지되는 것을 방지하는 방법은 무엇입니까?

메모리가 소진되었을 때 시스템이 정지되는 것을 방지하는 방법은 무엇입니까?

나는 모든 메모리와 스왑 공간을 쉽게 사용할 수 있는 프로세스(gdb)를 실행해 왔습니다. 이런 일이 발생할 때마다 전체 시스템이 매우 응답하지 않게 되고, Xorg가 거의 업데이트되지 않으며, 다른 tty로 전환할 수 없고, 콘솔에 명령을 입력할 수 없습니다.

나는 다음을 통해 메모리를 따로 설정해 보았습니다.

sudo sysctl -w vm.min_free_kbytes=407580
sudo sysctl -w vm.swappiness=5

가상 메모리의 일부가 예약되어 있지만 스왑 공간이 모두 사용되어 시스템이 응답하지 않는 상태로 유지됩니다.

시스템이 완전히 정지되는 것을 방지할 수 있는 확실한 방법이 있는 사람이 있습니까? 그러면 메모리를 많이 차지하는 프로세스를 종료할 수 있나요?

고쳐 쓰다:

특정 셸에서 시작된 각 프로세스의 메모리 사용량을 제한하는 방법을 찾았습니다.

ulimit -v 2037900

이는 가상 메모리를 프로세스당 2037900KiB(내 총 메모리)로 제한합니다. 이는 하나의 프로세스에서 사용해야 하는 것 이상입니다. 지금까지 이는 시스템 속도 저하 및 정지를 방지하는 것으로 보입니다.

누군가가 좋은 시스템 리소스 관리 방법을 알고 있는지 궁금합니다.

답변1

Linux 메모리 부족 킬러를 연구하세요. 서버에서 자동으로 시작되지 않나요? 나 한테 달려있어.

http://www.oracle.com/technetwork/articles/servers-storage-dev/oom-killer-1911807.html

관련 정보