Для некоторого контекста я профилирую выполнение Memcached и хотел бы отслеживать пропуски dTLB во время выполнения конкретной функции.Предполагая, что Memcached порождает несколько потоков, каждый поток потенциально может выполнять функцию параллельно.Одно конкретное решение, которое я обнаружил, в Perf есть события переключения ( Использование perf probe для отслеживания статистики производительности во время конкретной функции ), должно позволить мне добиться этого, установив датчики на входе и выходе функции и переключая счетчик событий на /на каждом датчике соответственно.
Мой вопрос:
(a) Насколько я понимаю, события перфорации включались как часть ветки в ядре Linux 3.x.Было ли это включено в последние версии LTS ядра Linux 4.x?Если нет, есть ли другие альтернативы?
(b) Другой найденный мной обходной путь описан здесь: мониторинг производительности для подмножества выполнения процесса .Однако я не слишком уверен, будет ли это работать правильно для рассматриваемой проблемы.Я обеспокоен тем, что Memcached является многопоточным, и каждый новый поток порождает новый дочерний процесс, который может вызвать слишком много накладных расходов.
Есть предложения?