oom-killer killing 프로세스의 원인을 진단하는 방법


9

CentOS 및 www / mail / db를 실행하는 작은 가상 개인 서버가 있는데 최근 웹 서버와 ssh가 응답하지 않는 몇 가지 사건이 발생했습니다.

로그를 살펴보면 메모리 부족 및 스왑으로 인해 oom-killer가 이러한 프로세스를 종료 한 것으로 나타났습니다.

누구든지 최근 사건을 일으킨 원인을 진단하는 방법에 대한 조언을 해 줄 수 있습니까? 첫 번째 프로세스가 종료되었을 가능성이 있습니까? 다른 곳을 찾아야합니까?

답변:


11

아니요, 알고리즘은 그렇게 단순하지 않습니다. 자세한 정보는 다음에서 찾을 수 있습니다.

http://linux-mm.org/OOM_Killer

메모리 사용량을 추적하려면 다음과 같은 명령을 실행하는 것이 좋습니다.

ps -e -o pid,user,cpu,size,rss,cmd --sort -size,-rss | head

가장 많은 메모리를 사용하는 프로세스 목록을 제공합니다 (아마도 OOM 상황 발생). | head모든 프로세스를 확인하려면를 제거하십시오 .

이것을 cron에 넣으면 5 분마다 반복하여 파일에 저장하십시오. 며칠 이상 유지하면 나중에 무슨 일이 있었는지 확인할 수 있습니다.

ssh와 같은 중요한 서비스의 경우 그러한 상황에서 자동 재시작을 위해 monit을 사용하는 것이 좋습니다. 원격 콘솔이 없으면 컴퓨터에 대한 액세스 권한이 손실되는 것을 막을 수 있습니다.

행운을 빕니다,
주앙 미구엘 네 베스


고마워-마침내 oom-killer로 인해 서버가 무릎을 꿇고 몇 번 더 사건을 일으킨 후에 시도해 보았습니다. 원인을 추적해야합니다.
dunxd

6

oom-killer가 밟는 과정이 반드시 엉망이 된 것은 아니기 때문에 최근에 어려움을 겪었습니다. 그것을 진단하는 동안, 나는 내가 좋아하는 도구 중 하나에 대해 배웠습니다.

이 유틸리티는 스테로이드의 탑과 같습니다. 미리 설정된 시간 간격 동안 시스템 정보를 프로파일 링합니다. 그런 다음 재생하여 진행 상황을 확인할 수 있습니다. 파란색으로 80 % 이상, 빨간색으로 90 % 이상인 프로세스를 강조 표시합니다. 가장 유용한보기는 마지막 기간 동안 할당 된 메모리 양을 나타내는 메모리 사용량 테이블입니다. 저에게 가장 큰 도움이되었습니다.

환상적인 도구-그것에 대해 충분히 말할 수 없습니다.

성능 모니터 상단



1

OOM은 당시 메모리 사용량이 가장 많은 프로세스 만 종료합니다. 프로세스가 한도를 초과했거나 전화 통화를 급증시킬 필요는 없습니다.
또한 리눅스는 메모리 할당이 부족합니다. AKA 프로세스에 5GB가 필요하지만 3 만 사용하는 경우 Linux는 다른 프로세스가 2를 사용하지 않도록합니다. 성능> 신뢰성. p1에 5가 가득 차면 얻을 수 없습니다.

exeprt가 아닙니다. 이걸 직접 다루고 내가 찾은 것을

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.