URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 97586
[ Назад ]

Исходное сообщение
"memdump вешает сервер"

Отправлено novichok , 01-Май-20 01:51 
Уважаемое сообщество, подскажите новичку, пока только набираюсь опыта в линукс.

Вообщем проблема такая:

потребовался мне дамп памяти чтобы найти в нем вывод сдохшей программы,

вбил команду 'memdump > mem.dump &' и через какое-то время сервер перестал реагировать вообще на что-либо. ресетнул его и увидел что из 24гб в дамп попало только 500мб.
сначала подумал что ошибка памяти, но мемтест ошибок не нашел, загрузился с лайвсд antix19.1 и опять запустил memdump но дамп писал на флешку, результат тот-же, сервер завис.

загрузил с лайвсд antix19.1 на домашнем компе и запустил memdump, и комп хоть и не завис полностью но после дампа в 766мб загружаются все ядра процессора и комп реагирует на нажатия кнопок клавиатуры с задержкой в минут 5 при этом фиксирует не все нажатия.

'nice -n19 memdump > mem.dump &' не помогло
'cpulimit -b -l 100 $(pidof memdump)' не помогло

memdump игнорит все кроме 'kill -9 $(pidof memdump)'

насколько я понял с железом проблем нет, и либо это какой-то глюк ОС или memdump, либо я что-то не понимаю и косячу.

сервер на devuan_2.1_x64

нужно просто скинуть всю память в файл, что я делаю не так?


Содержание

Сообщения в этом обсуждении
"memdump вешает сервер"
Отправлено Аноним , 01-Май-20 21:11 
>потребовался мне дамп памяти чтобы найти в нем вывод сдохшей программы,

а вы сильно новичок? ну, в плане, вы вообще хорошо представляете, как будете работать с тем, что получите?

>вбил команду 'memdump > mem.dump &'

и куда это он писал? Там в мане написано, что результат надо отсылать по сети

>вывод сдохшей программы,

именно вывод? с чего вы взяли, что он еще в памяти? может вам надо перенаправить stdout/stderr в файл?

если вас интересует причина вылета программы, то вам больше поможет core dump (но сначала посмотреть логи программы (если есть) или системы)


"memdump вешает сервер"
Отправлено novichok , 02-Май-20 21:47 
> а вы сильно новичок? ну, в плане, вы вообще хорошо представляете, как
> будете работать с тем, что получите?

не могу адекватно оценить свой уровень, я пользователь самоучка, знаю чуть больше минимума чтобы просто пользоваться линуксом и делать что-то свое.

предполагал 'strings mem.dump > file' ,и затем искать в файле что там есть похожего на нужное мне например грепом.


> и куда это он писал? Там в мане написано, что результат надо
> отсылать по сети

а вот это я упустил... может в этом и косяк.

>>вывод сдохшей программы,
> именно вывод? с чего вы взяли, что он еще в памяти? может
> вам надо перенаправить stdout/stderr в файл?

я предположил что он еще может быть там и не затерт, пишу обменник и ввиду усталости забыл удалить из скрипта строку с тестовым адресом, в итоге немного монеро ушло на адрес уже удаленного кошелька(создавался под проверку синтаксиса ответов от monero-wallet-rpc). кошелек создавался недавно(около часа до того как ушли монеты) и при создании он выдает в консоль сид фразу для восстановления. вот этот вывод я и хотел найти в памяти.
восстановить файл с диска при моем уровне знаний нереально, имя файла одинаково с тем что был создан на его месте, и помимо этого на диск пишется ооочень много всего в процессе работы.

как перенеправить stdout\stderr мне известно, а вот как найти этот-же вывод уже отработавшей программы кроме shift+PgUp - нет.

> если вас интересует причина вылета программы, то вам больше поможет core dump
> (но сначала посмотреть логи программы (если есть) или системы)

меня интересует как происхотит то что программа из официального репозитория установленная apt-get игнорирует заданные приоритеты, игнорирует все сигналы кроме 'kill -9', и имеет почти высший приоритет по прерываниям, если сервер после ее запуска вообще прекратил сетевую деятельность и не реагировал на нажатия клавиатуры...

хотелось бы понять почему так? я попробую запустить мемдамп с отсылкой результата по сети как сказано в мане, возможно моя ошибка была в записи в файл.

в любом случае спасибо за поддержку.

>>Добро пожаловать в мир линукс!
>>Я думаю вам нужно найти автора проги и обсудить это с ним. Или мантейнера. Вешать комп не должно
>>в любом случае, даже если у вас очень медленный диск

благодарю, как разберусь в чем проблема будет ясно мой косяк или стоит написать автору\или в devuan\antix например.


"memdump вешает сервер"
Отправлено Аноним , 02-Май-20 23:45 
>меня интересует как происхотит то что программа из официального репозитория установленная apt-get игнорирует заданные приоритеты, игнорирует все сигналы кроме 'kill -9', и имеет почти высший приоритет по прерываниям, если сервер после ее запуска вообще прекратил сетевую деятельность и не реагировал на нажатия клавиатуры...

видел похожую тему, но там фигурировало dd. Смысл был в том, что ядру может очень не понравиться то, что вы читаете определенные блоки памяти.

>при создании он выдает в консоль сид фразу для восстановления. вот этот вывод я и хотел найти в памяти.
>через какое-то время сервер перестал реагировать вообще на что-либо. ресетнул его

по идее в памяти уже ничего нет, т.к. при отключении питания она информацию не хранит.


"memdump вешает сервер"
Отправлено Аноним , 02-Май-20 00:55 
Добро пожаловать в мир линукс!

Я думаю вам нужно найти автора проги и обсудить это с ним. Или мантейнера. Вешать комп не должно в любом случае, даже если у вас очень медленный диск.

Да, если прога берет данные из /dev/mem, то после 4.16 доступ может быть ограничен и получить можно не все. Проверьте этот вариант.