OOM 킬러 로그에서 전체 프로그램 명령 행 인수보기 log / syslog에서 지금 보는 것은 Memory

OOM killler logs에서 전체 프로그램 명령 행 인수를 볼 수 있습니까? / var / log / syslog에서 지금 보는 것은

Memory cgroup out of memory: Kill process 29187 (beam.smp) score 998 or sacrifice child
Killed process 29302 (cpu_sup) total-vm:4300kB, anon-rss:76kB, file-rss:272kB
beam.smp invoked oom-killer: gfp_mask=0xd0, order=0, oom_score_adj=0
beam.smp cpuset=/ mems_allowed=0-3

내 컴퓨터에 beam.smp 프로세스가 많이 있으며 OOM 킬러가 어떤 프로세스를 종료했는지 알아내는 것이 매우 편리하지 않습니다.



답변

echo 1 > /proc/sys/vm/oom_dump_tasks

커널이 메모리 부족 오류에 표시 될 수있는 최대 값에 대한 것 같습니다.

https://www.kernel.org/doc/Documentation/sysctl/vm.txt

커널이 OOM-killing을 수행 할 때 시스템 전체 작업 덤프 (커널 스레드 제외)를 생성 할 수 있으며 pid, uid, tgid, vm 크기, rss, nr_ptes, swapents, oom_score_adj 점수 및 이름과 같은 정보가 포함됩니다. 이는 OOM 킬러가 호출 된 이유를 판별하고, 그 원인이되는 불량 작업을 식별하고, OOM 킬러가 종료 한 작업을 선택한 이유를 판별하는 데 도움이됩니다.

이것이 0으로 설정되면이 정보는 억제됩니다. 수천 개의 작업이있는 매우 큰 시스템에서는 각각에 대한 메모리 상태 정보를 덤프하지 못할 수도 있습니다. 이러한 시스템은 정보가 필요하지 않을 때 OOM 조건에서 성능 저하를 강요해서는 안됩니다.

이것이 0이 아닌 값으로 설정되면,이 정보는 OOM 킬러가 실제로 메모리 호깅 작업을 종료 할 때마다 표시됩니다.


답변

echo 1 > /proc/sys/vm/oom_dump_tasks

많은 도움이되지 않았습니다. 로그에 여전히 명령 줄 매개 변수가 없습니다.
종료 된 프로세스의 명령 행을 후 향적으로 보려면 상단 을 사용 하여 시스템 활동을 기록 할 수 있습니다 .
oom-killer가 s / th를 죽이면 해당 시간 동안 로그를 열고 / var / log / syslog에서 PID로 처리 한 다음 ‘c’키를 눌러 프로세스의 명령 행을보십시오.


답변