Профилирование системы - информация об использовании общих библиотек

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

Можно ли использовать для этого 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>

lsof shared lib

Другие вопросы по тегам