как узнать причину завершения программы
От: sergey2b ЮАР  
Дата: 31.05.23 15:28
Оценка:
ubuntu 20.04 моя С++ программа через несколько минут работы под докером завершаеться с сообщением Killed
на host эта же программа работает нормально


как можно узнать причину завершения
Re: как узнать причину завершения программы
От: zubactik  
Дата: 31.05.23 15:34
Оценка: 9 (1)
ну обычно это нехватка каких-то ресурсов?

dmesg? под отладчиком глянуть? если есть мониторинг то вообще по нему сперва оценить сторону в какую копать, а потом уже более точными средствами смотреть?
Re: как узнать причину завершения программы
От: Zhendos  
Дата: 31.05.23 16:12
Оценка: 9 (1)
Здравствуйте, sergey2b, Вы писали:

S>ubuntu 20.04 моя С++ программа через несколько минут работы под докером завершаеться с сообщением Killed

S>на host эта же программа работает нормально

Обычно еще какой именно сигнал в сообщении есть, типа "Killed by signal 1".
По номеру сигнала можно приблизительно понять что случилось,
убило ядро так как был доступ к "левой" памяти, другой процесс,
чаще всего родительский убил и тому подобное.

Если номер сигнала в сообщении нет, то можно поставить обработчики
на все сигналы и записать каким сигналом "пришибло".
Re[2]: как узнать причину завершения программы
От: sergey2b ЮАР  
Дата: 31.05.23 18:39
Оценка:
Здравствуйте, zubactik, Вы писали:

Z>dmesg? под отладчиком глянуть? если есть мониторинг то вообще по нему сперва оценить сторону в какую копать, а потом уже более точными средствами смотреть?


[Wed May 31 18:35:52 2023] Out of memory: Killed process 66379 (ndirecv2) total-vm:31844232kB, anon-rss:29069036kB, file-rss:0kB, shmem-rss:0kB, UID:0 pgtables:60744kB oom_score_adj:0
Re[3]: как узнать причину завершения программы
От: kov_serg Россия  
Дата: 31.05.23 18:45
Оценка: +1
Здравствуйте, sergey2b, Вы писали:

Z>>dmesg? под отладчиком глянуть? если есть мониторинг то вообще по нему сперва оценить сторону в какую копать, а потом уже более точными средствами смотреть?


S>[Wed May 31 18:35:52 2023] Out of memory: Killed process 66379 (ndirecv2) total-vm:31844232kB, anon-rss:29069036kB, file-rss:0kB, shmem-rss:0kB, UID:0 pgtables:60744kB oom_score_adj:0


Вы сожрали 32Gb поэтому процесс пристрелили -- причина мало памяти
Re[3]: как узнать причину завершения программы
От: zubactik  
Дата: 31.05.23 19:43
Оценка:
там уже выше ответили. теперь можно глянуть сколько на хосте потребляется памяти в тоже время. на контейнерах не припомню чтобы ловилось что-то дополнительно интересное, но это память — вещь интересная. можно посмотреть сколько ресурсов контейнеру выделено и попробовать увеличить.

если появятся подозрения на утечки/другие ошибки работы с памятью то тогда уже можно пробовать втупую valgrind, собираться с asan, профилировщики памяти смотреть (но последние двое уже не совсем втупую).
Re: как узнать причину завершения программы
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 01.06.23 15:37
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>ubuntu 20.04 моя С++ программа через несколько минут работы под докером завершаеться с сообщением Killed

S>на host эта же программа работает нормально

Соболезнования. Учитывая радости типа такой, надо брать памяти с запасом.
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.