【发布时间】:2014-07-30 16:54:20
【问题描述】:
我想创建一个自动化程序来在程序运行时捕获 CPU 的涡轮速度。
我的自动化脚本应该使用 perl 语言。
我确实尝试过使用:
system("script mytest.txt");
system("./turbostat");
当我执行这个程序时,只有脚本行有效,turbostat 无效。
有人可以建议我通过什么方法来捕捉涡轮速度吗?
【问题讨论】:
-
如果你在一个普通的 Linux 系统上,你可能会读到
/proc/cpuinfo。对于每个内核,您可以阅读“型号名称”,其中通常包括处理器的设计速度,以及“cpu MHz”字段,该字段将说明内核的运行速度。 -
其实我想知道程序执行时的涡轮速度。我有一个名为 turbostat 的程序,它会在我运行基准测试时显示 CPU 的速度。所以我想写一个代码,当我运行我的基准测试时会自动记录涡轮速度:D
-
您是在询问 Intel Turbo Boost,目前有多少个 100MHz 或 133MHz 的倍数有效?如果不是,也许您可以解释一下“涡轮速度”一词的含义(这似乎并不常见)。
-
嗨 DavidO,turbospeed 是我运行程序时 CPU 的速度,以 MHz 为单位。例如,我想知道当我执行一个名为 ABC.exe 的程序时 CPU 的速度是多少。有一个叫做 turbostat 的软件,它会在我们执行它时向我们显示速度。我的问题是我需要创建一个 perl 脚本来运行并在运行 ABC.exe 程序的同时节省 CPU 速度:)
-
大多数现代 CPU 都有多个内核,它们可能以不同的时钟速度运行。此外,您不(很容易)知道给定进程正在使用哪些核心。但我猜你还没有检查
/proc/cpuinfo中的“cpu MHz”字段,因为如果你已经这样做了,你会看到它们报告了每个内核的当前速度。这个速度从一个瞬间变化到下一个瞬间,因此您可能必须进行监控,然后在继续监控/报告的同时分叉您的工作人员。
标签: linux perl automation