【问题标题】:Running perf-top in a script在脚本中运行 perf-top
【发布时间】:2019-04-29 18:43:47
【问题描述】:

我想通过perf top 捕获一些间歇性性能问题。问题是间歇性的,所以我想编写一个脚本,在问题发生时运行perf top,以便我可以保存数据并在以后查看。

我似乎无法弄清楚如何让perf top 将其输出放入文件中,它似乎需要以交互方式运行。到目前为止,这是我尝试过的:

# timeout 10 perf top --stdio -E 20 > 'perf-top'

这不会杀死性能,只是让它永远在后台运行,直到我创建另一个控制台会话,找到 PID 并杀死它。

# timeout --signal=9 10 perf top --stdio -E 20 > 'perf-top'

这会在预期的 10 秒内杀死 perf,但输出不会写入我指定的文件。

是否有一些特殊的方式需要运行此命令?如果我从交互式 ssh 会话运行它,它可以工作,但我真的希望能够从脚本运行它。我正在尝试将其与其他一些指标收集程序一起放入 ansible 任务中。

【问题讨论】:

    标签: linux perf


    【解决方案1】:

    SIGKILL (9) 无法捕获,因此perf 无法刷新任何缓冲输出。

    使用任何其他信号,以便perf 在收到信号后进行清理并写入输出。

    如果默认的SIGTERM 不起作用,那么可以尝试 SIGHUP、SIGINT 或其他方法。
    timeout --signal=INT


    timeout 10 perf top --stdio -E 20 > perf-top(使用默认 SIGTERM)在我的 Arch Linux 桌面上为我工作(作为非 root)。 perf version 5.0.g1c163f4

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多