nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
vasek, нееее нет... фишка в том что, занимаемая память dbus это какая то структура. а у этой структуры есть четкое определение какой другой процесс инициировал выделение памяти для него. так вот я хотел бы проанализировать выделенную память на предмет совпадений на процесс спамер. (подозреваю что этот процесс всего одни.)
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
nafanjaТо есть - запросил dbus-daemon для своих нужд дополнительной памяти - и нужно узнать причину запроса?, точнее, кто инициатор? Здесь дамп памяти не поможет - нужен другой инструмент, например, наиболее простой это strace - там будет указан системный вызов mmap (выделение памяти), а выше может что то и будет об инициаторе, но этим никогда не интересовался, а потому будет ли там что то указано и как, сказать не могу. В приведенном выше скрипте указан gdb, но, думаю, в части выявления инициатора вряд ли с помощью этого отладчика что то можно выяснить. И все-таки, для начала неплохо бы набрать информации - какой процесс dbus-daemon (system или session) тратит много памяти, далее, используя pmap определить на что идет эта память? ... а уж дальше думать, можно ли и как выявить этого инициатора.
Ошибки не исчезают с опытом - они просто умнеют
|
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
Пришла еще одна идея, как можно определить виновника - использовать для этого сам dbus. Запускаем busctl list и узнаем имена действующих юнитов, тех, что активированы (не активированный выделены серым цветом, а активированные белым) и далее запускаем мониторить по одному, чтобы определить который очень часто спамит, командой, типа sudo busctl monitor org.freedesktop.PolicyKit1 При этом можно смотреть идет ли увеличение памяти - завершить - Ctrl+CЕсли нашли такой, то можно попробовать его деактивировать и посмотреть что будет .... а можно и проще, не мониторить, а деактивировать поочередно. PS - но можно ли таким образом выявить виновника - 100% уверенности нет. ... и вроде бы у dbus есть функция debug, но ни разу ее не запускал. EDIT 1 - и все забываю спросить - а не пробовал ограничить размер памяти dbus??? - вроде бы по дефолту прописан 1G
Ошибки не исчезают с опытом - они просто умнеют
|
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
В части скритпаnafanjaнасколько понимаю его работу, данный скрипт считывает область памяти, указанную в /proc/PID/maps, приаттачивается к процессу отладчиком gdb, считывает этот кусок памяти и пишет в файл … и этих файлов будет столько же сколько областей памяти в /proc/PID/maps --- и вряд ли что то будет про процессы. Если уж так хочется снять дамп процесса, то можно это сделать и подругому, используя утилиту gcore из пакета gdb - получишь полный дамп памяти процесса, но размер может быть большим, так как это полная память занятая процессом … и далее можно анализировать этот дамп самим gdb или используя strings - смотреть строки понятные человеку … но это большой труд и не уверен, будет ли там нужная тебе информация. Пример, как это можно провернуть В качестве подопытного возмем PID=432 /usr/bin/dbus-daemon --session - делаем полный дамп PID=432 с выводом в файл ~/dump sudo gcore -o ~/dump 432 В результате получим файл ~ /dump.432 (утилита автоматом допишет PID в конец) Смотрим размер полученного файла stat -c %s ~/dump.432 - 2766872 Это файл elf file ~/dump.432 и чтобы его посмотреть нужно вытащить из него читаемые строки, используя stringsstrings ~/dump.432 > ~/dump_stings.432 (один нюанс - по дефолту будут только строки длиной более 4-х символов) Смотрим объем полученного файла stat -c %s ~/dump_strings.432 - 282796 ну и посмотрим что там внутри (1-ые 10 строк) cat ~/dump_strings.432 | head -10 Как то так, но поможет ли это тебе, не уверен.PS - обычно дампы анализируют gbd, но работа с ним не так и проста - у меня так и не хватило терпения освоить его ... хотя по правде не особо это и интересовало, достаточно было получение одного Call Trace.
Ошибки не исчезают с опытом - они просто умнеют
|
User6260 |
|
Темы:
1
Сообщения:
53
Участник с: 08 мая 2013
|
vasekUser6260Отпишись после обновления. Вот после вчерашнего обновления ситуация
Вроде все хорошо. Я тут в теме прочитал, что может быть виноваты драйвера NVIDIA. У меня NVIDIA, драйвера версии 340 (у меня старая видюшка, уже не поддерживается современными драйверами). |
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
vasek, я тебя понял а ты меня нет. представь dbus это почтальон и у него есть сумка с письмами, так вот (мне кажется) эта сумка и раздувается от количества писем. а у письма есть отправитель, получатель и данные. вот я и хочу узнать кто отправитель и получатель проанализировав письма в сумке почтальона. а ты предлагаешь другой метод, следить за почтальоном, у кого он берет письма.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
vs220 |
|
Темы:
22
Сообщения:
8070
Участник с: 16 августа 2009
|
nafanjadbus-monitor busctl |
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
User6260Как видим у кого то все нормально, у кого то нет - напрашивается простое сравнение задействованных процессов - может так и поймается багованный? Предлагаю сравнить выводы думаю, достаточно одних user, system можно и не сравнивать ... Например, мой вывод - проблем нет
Ошибки не исчезают с опытом - они просто умнеют
|
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
vs220да может быть, но это только один из многих инструментов.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
RusWolf |
|
Темы:
11
Сообщения:
2394
Участник с: 16 июля 2016
|
vasekПостоянно смотрю этот топик. Наконец добрались руки дома, до четвёртого компа с KDE. B вот на нём наконец случилось чудо :) Вчера, за шесть часов работы набежало 387MB, но больше не подымалось уже.P.S. пока писал сообщение, уже набежало:
|