我正在尝试使用 Linux 性能工具perf
来监控存在来宾 VM 的主机上的 kvm 事件。
我调用的命令perf
是
perf kvm stat record
过一段时间后,我会按下来Ctrl + C
停止它,它会显示一些信息,比如它被唤醒写入数据的次数,并且它会花费一些时间才真正退出,我猜它正在写入数据。
基本上我想要实现的是perf
1 分钟后自动停止该进程。这是我的脚本的原型:
perf kvm stat record &
pid=$!
sleep 60
sudo kill -2 $pid
这里的问题是,当我以这种方式终止进程时,它将无法正确地将数据写入磁盘。并且我尝试发送信号2
和9
,但对我来说都不起作用。
有谁知道如何正确中断perf
进程以便它完成数据写入然后退出?
答案1
根据 perf kvm 描述这里,您必须使用 SIGINT(7) 来终止 perf 进程。这可确保 perf 正确地将收集的数据转储到文件中。
perf kvm stat record &
pid=$!
sleep 60
sudo kill -INT $pid