Как изящно убить процесс инструмента linux perf

Я пытаюсь использовать инструмент производительности Linux perf для мониторинга событий kvm на хосте, где существует гостевая виртуальная машина.

Команда, которую я вызываю perf является

perf kvm stat record

Через некоторое время я нажму Ctrl + C чтобы остановить его, он покажет некоторую информацию, например, сколько раз его разбудили, чтобы записать данные, и он потратит некоторое время, прежде чем действительно завершится, что, я полагаю, это запись данных.

По сути, я хочу автоматически остановить perf процесс через 1 минуту. Вот прототип моего скрипта:

perf kvm stat record &
pid=$!
sleep 60
sudo kill -2 $pid

Проблема здесь в том, что когда я завершаю процесс таким образом, он не будет правильно записывать данные на диск. И я попытался отправить сигнал 2 а также 9, ни у меня не работает.

Кто-нибудь знает, как правильно прерывать perf обработать так, чтобы он закончил писать данные и завершил работу?

0 ответов

Согласно описанию perf kvm здесь, вы должны использовать SIGINT(7), чтобы завершить процесс perf. Это гарантирует, что perf правильно выводит собранные данные в файл.

perf kvm stat record &
pid=$!
sleep 60
sudo kill -INT $pid
Другие вопросы по тегам