Pull to refresh

Comments 34

А что из линуксовой аптечки умеет дамп писать по жручке сру?

#!/sarcasm

Можно же собрать велосипед-однострочник из bash, top, sed, uptime и немного дебага этого всего :))

Ну вот не однострочник, и счастливой отладки :)

while cat /proc/$PID/stat | awk '{условие срабатывания}'; do sleep 0; done; gcore $PID
Думаю, где-то так можно. А если вместо bash взять python, то оно и процессор грузить не будет.
вот это самое «условие срабатывания» уже не так тривиально.

а если взять вместо питона си — всё, сразу фу и не надо так?
а если взять вместо питона си — всё, сразу фу и не надо так?

Большой разницы нет. Просто таких банальных фиговин средний админ пишет по пятьдесят штук на дню, но, отчего-то, не публикует каждую с помпой — "микросовт выпустила убер-утилиту для линукса!".
Говорят, микросовт стала самым большим контрибьютором в опенсорс. Если они вот такую банальщину контрибьютят тоннами, то это и неудивительно. Можно написать отдельные утилиты для поиска *.тхт файлов. И ещё одну для.мп3 и тд и тп. Огромный простор для засирания опенсорса никчёмным говном.

А, погоди, претензия-то к кому — к ализару или к мокрософту?
UFO just landed and posted this here
atop к примеру, ну и ещё там вагон с тележкой были(не помню за ненадобностью)

… пардон, не то, был невнимателен

Нет такой буквы в коммандлайне атопа. Ну или ткните носом? Я даже перечитал ман уже.

А она (буква) и не нужна. Проблема atop только одна — это все-таки утилита ретроспективного анализа. И возможно, что не удастся с первого раза угадать интервал снятия метрик.
юзаю часто gdb для этих целей. вариантов применений масса, от ручного аттача до полуавтоматического (https://poormansprofiler.org/)

для особо тонких работ по наводке одного из хабравчан юзаю теперь вот такое: http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html

первое — стандартный отладчик, второе — линуксовый профайлер в ядре со скриптом для агрегации вывода
причём приведённые мной инструменты работают более тонко, чем procdump. второй так вообще позволяет достаточно общую количественную картину узреть.
Выпустили год назад вроде как

Сильно ли это удобнее пары строк на shell + gcore — не совсем ясно. Надо пробовать

Ну, теперь заживем! Отож токмо мучились...

Microsoft выпустила Linux-версию сервиса LSASS.
Почему фу? Выпустили, ну ок. Под Linux в 2018 году уже есть 100500 способов сделать странное… Вот есть и 100501-й в виде специальной программы от MS.
Просто в ОС, где доступны исходники, и за 5 мин находится решение задачи… Специально помнить, что есть такая специальная утилита, как-то сложновато.

Просто из этих 100500 способов никто не делал вид, что решена неразрешимая проблема.

Вообще есть много причин, например:

1) Вот я не работаю с Linux, зато утилита procump мне хорошо знакома. И если мне внезапно нужно будет отладить проблемное приложение на Linux, то проще всего мне будет начать порта хорошо знакомой мне утилиты, чем разбираться в других.

2) Как подсказывает мне интуция основанная на опыте, когда дляодной задачи есть 100500 инструментов, из них 100000 не работают, а 475 работают плохо/только с напильником/не в твоём случае.
И найти схожу эти работающие инструменты, не так уж просто.
И мне логично будет начать с procdump по причине п.1 и потому что я могу надеяться что ms не будет выпускать откровенно не рабочую утилиту.

Microsoft вообще молодцы. Сразу понятно — кто делает у себя большой рефакторинг. Движутся в своих действиях в правильном наеоавлении, но не все сразу получится идеально.

UFO just landed and posted this here
Похоже, что направление выбрано не очень правильное.

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

Но он же в десктопных линуксах с самых ранних дистрибутивов встроен :P

Код понравился: портировали часть своего API и дальше пользуются как в нативной ОС. :-)
UFO just landed and posted this here
Мне не очень ясно, что делать с дампом от процесса. Возможно сравниваю тёплое с мягким, но анализируя дамп от BSOD-a, например, далеко не всегда удается понять причину сваливания системы.
Есть разные варианты каждый случай индивидуален.
Если мы смотрим crash dump, то в простейшем случае call stack нам покажет именно то место где упало. Примерно так же можно поступить если дамп записан по тригеру «зависание».

Если мы пишем дамп по тригеру загрузки процессора, да ещё и пишем эти дампы серией (после срабатывания тригера пишем n дампов, через каждые x секунд), то можно посмотреть какая нить в каком месте застряла.
Аналогично можно поступить с тригером потребления памяти.

Описанные способы конечно не 100% работают, но шанс есть (и иногда за него хватаешься как за соломинку).

А ещё из дампа можно извлечь специфичную для приложения/фреймворка информацию, например если мы отлаживаем дамп рабочего процесса iis, то можно посмотреть (например) какие запросы выполнялись в момент снятия дампа и как долго.

Не юниксвейнинько однако.


Оно раз в n секунд просыпается? Т.е. может пропустить пик? Зачем оно тогда?


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

Sign up to leave a comment.

Other news

Change theme settings