Профилирование системы - информация об использовании общих библиотек
Есть ли способ узнать, какие библиотечные файлы используются каким процессом (или количеством процессов) за определенный промежуток времени.
Можно ли использовать для этого V-Tune, perf или OProfile?
2 ответа
Есть ли способ узнать, какие библиотечные файлы используются каким процессом (или количеством процессов)
Вы можете сделать снимок cat /proc/*/maps > /tmp/snapshot
а затем использовать grep
а также wc
ответить на ваш вопрос.
Если вы хотите отслеживать систему в течение некоторого периода времени, вы можете делать снимок каждую секунду или около того.
Можно ли использовать для этого V-Tune, perf или OProfile?
Ты можешь сделать perf record -a
, затем perf script -D
и искать PERF_RECORD_MMAP
События.
В любой момент можно перечислить все разделяемые библиотеки в карте процессов определенного процесса-pid
cat /proc/<pid>/maps | grep <name of library>
Также можно проверить список запущенных процессов, которые открыли определенную общую библиотеку
lsof <path-to-shared-library-file>