Linux가 메모리가 부족할 때 프로세스에 대한 자세한 정보를 어떻게 얻을 수 있습니까?

StackOverflow https://stackoverflow.com/questions/120000

  •  02-07-2019
  •  | 
  •  

문제

나는 최근에 OOM-Killer가 얼마 후 프로세스를 죽이기 시작하는 데 문제가있었습니다. 메모리가 소비되는 것을 알 수 있었지만 서버에 도착할 때 더 이상 소비 한 것이 명확하지 않았습니다. Oom-Killer에 대한 더 많은 정보를 얻을 수있는 좋은 장소가 있습니까? 예를 들어 활성화 당시 프로세스에 대한 자세한 정보, 살해 된 프로세스에 대한 자세한 정보 및 선택 이유는 무엇입니까?

이 정보를 찾을 수있는 특정 장소, 수집하기위한 특정 도구 또는 OOM-Killer보고를 개선하기위한 일부 구성을 찾고 있습니다. 나는 oom-killer에 대한 일반적인 정보를 찾고 있지 않습니다. /var/메시지는 기본적으로 무료/할당 된 메모리에 대한 자세한 보고서 만 포함하지만 특정 프로세스는 할당되지 않았습니다.

도움이 되었습니까?

해결책

메시지 로그 파일을 확인하여 어떤 프로세스가 사망했는지 확인하고 일부 관련 정보가 확인할 수 있습니다. 이유에 관해서 :

... 청산을위한 이상적인 후보는 최근에 시작된, 어린이들과 함께 많은 기억을 사용하고, 좋은 I/O를 사용하는 특권이없는 과정입니다. Nohup'd Parallel Kernel 빌드와 같은 것 (모든 결과가 디스크에 저장되기 때문에 나쁜 선택은 아니며 'Make'가 종료되면 거의 작업이 손실되지 않기 때문에 선택하지 않습니다).

에서 여기.

킬러에 면역이되는 일부 과정을 정의하고 너무 낮은 경우 (살인자 트리거를 행복하게하는 경우) Swappiness 매개 변수를 조정하고 나열된 물건을 확인할 수 있습니다. 여기

다른 팁

일반적으로/var/log/메시지에 메시지를 가져와야하며 OOM-Killer가 죽인 프로세스와 관련하여 상당히 많은 세부 사항이 있습니다.

이것은 귀하의 질문에 대한 정확한 답이 아니라 malloc(3) Linux의 Man Page에 메모리 오버 커미트를 끄는 방법에 대한 정보가 있습니다.

echo 2 > /proc/sys/vm/overcommit_memory
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top