Как изящно убить процесс инструмента 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