我见过这个http://kaasxxx.wordpress.com/2008/01/22/linux-hz-checker/ 但剧本似乎不起作用。无论如何都知道在Linux终端中检查“HZ”的简单方法吗?
答案 0 :(得分:25)
这个问题没有统一的答案,因为在某些情况下,你的内核可能会被编译为“无分钟”,而根本不会使用常规定时器中断。但是,如果您使用的是传统内核和传统发行版,则可以使用.config
等内容在/ boot下找到当前内核的grep 'CONFIG_HZ=' /boot/config-$(uname -r)
文件。
答案 1 :(得分:4)
在我的C程序中,我使用进程的开始时间和正常运行时间以及运行时的某些值计算。
在Bash中,HZ计算看起来就像是。
$ awk '{print$22/'$(tail -n 1 /proc/uptime|cut -d. -f1)"}" /proc/self/stat
100
意思是:获取正常运行时间的第22个值并将其除以" self"的开始时间。过程
编辑:
是的,user1530335,这是正确的。有关stat文件的其他信息可以从手册页proc(5)中获取。这里的领域" starttime"被描述为"系统启动后进程开始时的jiffies时间"。
是的,而且大多数(英特尔拱门)它将是100.旧的罕见" preempt"内核有时甚至在英特尔上有1000个。其他值可能是:
/**
* 10 S/390 (sometimes)
* 20 User-mode Linux
* 32 ia64 emulator
* 64 StrongARM /Shark
* 100 normal Linux
* 128 MIPS, ARM
* 1000 ARM
* 1024 Alpha, ia64
* 1200 Alpha
*/
答案 2 :(得分:4)
可以像这样确定HZ的值:
$ getconf CLK_TCK
100
可以使用getconf
闪烁运行中的内核的任何编译时选项。请记住,HZ是可配置的:
$ man 7次
HZ的值因内核版本和硬件平台而异。在i386上 情况如下:在2.4.x(含)以下的内核上,HZ为100 给出0.01秒的抖动值;从2.6.0开始,HZ被提升为 1000,产生0.001秒的跳动。从2.6.13内核开始,HZ值为 内核配置参数,可以是100、250(默认值)或1000, 产生的jiffies值分别为0.01、0.004或0.001秒。从2.6.20内核开始,出现了另一个频率:300, 平均分配普通视频帧速率(PAL,25 HZ; NTSC,30 HZ)。
times(2)系统调用是一个特例。它以内核常量USER_HZ定义的粒度报告时间。用户空间应用程序可以使用sysconf(_SC_CLK_TCK)确定此常数的值。
通常情况下,在使用_SC_
进行查询时,可能需要从手册页中显示的变量名中减去getconf
位。
答案 3 :(得分:3)
有许多不同的方法可以提示您的设置是什么。 在某些单核系统上,这个技巧很方便:
/ # cat /proc/interrupts | grep -i time; sleep 10; cat /proc/interrupts | grep time
16: 10404858 INTC 68 Level gp_timer
16: 10514798 INTC 68 Level gp_timer
它显示了10秒内的滴答数量。睡觉。 这里约有100&000; 000。除以10得到大约10&000; 000 HZ。
这可能会让多核系统感到困惑,因为它将是每核心列表。
另一种选择是检查您是否可以获得原始内核配置。它将存储在
中/proc/config.gz
打开包装并打开文件。搜索与
类似的部分CONFIG_HZ_FIXED=0
# CONFIG_HZ_100 is not set
# CONFIG_HZ_200 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
# CONFIG_HZ_500 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ_10000=y
CONFIG_HZ=10000
CONFIG_SCHED_HRTICK=y
只是为了警告你; 10' 000远离正常设置。实验设置。
答案 4 :(得分:0)
您要查找的是正在运行的内核/proc/config.gz
的配置内(如果已启用,则在大多数系统上是这样)。
因此您可以使用以下方法检查最终的价格变动率:
zcat /proc/config.gz | grep CONFIG_HZ
答案 5 :(得分:0)
似乎实现这一目标的另一种方法是检查 cat /proc/sys/kernel/sched_min_granularity_ns
以获得调度增量的纳秒级粒度。有关调度程序如何工作的更多详细信息,请查看此页面:https://www.kernel.org/doc/Documentation/scheduler/sched-design-CFS.txt