2015-06-03 5 views
0

У меня есть программа, написанная на C/C++ сама по себе, которая была убита Linux. Появится сообщение «убито». Хочу выкопать проблему я заметил внутри файла файл /var/log/kern.log:Почему мой процесс был убит?

Out of memory: Kill process 3915 (my_proj) score 236 or sacrifice child 
    Killed process 3915 (my_proj) total-vm:5503376kB, anon-rss:3857420kB, file-rss:40kB 

Я не знаю, как читать эту информацию и, если есть некоторая полезная информация, чтобы понять, почему это произошло убит. Вы можете мне помочь?

+2

"Из памяти" – DanFromGermany

+0

заказ: Http: //unix.stackexchange. com/questions/128642/debug-out-of-memory-with-var-log-messages –

+0

Также: http://java.dzone.com/articles/out-memory-kill-process-or –

ответ

0

Вы жертве Linux OOM Killer.

Вы можете настроить способ, которым убийца OOM обрабатывает условия OOM с определенными процессами. например, ваш my_proj процесс 3915, который был убит ранее. Если вы хотите, чтобы не быть убитым OOM убийцей, вы можете:

эхо -15>/Proc/3915/oom_adj

+0

Благодарим вас за ответ. Предположим, что я снова запускаю свой сценарий. Новый контакт должен быть назначен «xxxx». Должен ли я просто писать: echo -15>/proc/xxxx/oom_adj? Имеет ли это побочные эффекты? – dario

+0

У меня есть второй вопрос. Я также получаю эту ошибку при запуске моей программы на компьютере с большой емкостью памяти и операционной системой ubuntu. Вы предлагаете мне использовать там ту же команду? – dario

+0

1 - да: побочный эффект заключается в том, что ваш процесс не будет убит, но некоторые другие будут. 2 - да ubuntu - это дистрибутив на основе Linux. 3 - у вас может быть утечка памяти! – Mali

Смежные вопросы