gpt4 book ai didi

linux - Linux 中是否可以通过/sys 获取特定核心的当前 CPU 利用率?

转载 作者:太空宇宙 更新时间:2023-11-04 04:42:12 24 4
gpt4 key购买 nike

我想编写一个 shell 脚本来读取每个核心的当前 CPU 利用率。是否可以从 Linux (CentOS 8) 中的 /sys 目录中读取此内容?我发现 /sys/bus/cpu/drivers/processor/cpu0 确实给了我相当多的信息(比如当前频率),但我还没有弄清楚如何读取 CPU 利用率。

换句话说:是否有一个文件可以提供 Linux 中特定 CPU 核心(特别是 CentOS 8)的当前利用率?

最佳答案

我相信你应该能够从/proc/stat 中提取信息 - 以 cpu$N 开头的行,其中 $N 是 0, 1, 2, ...... 例如:

强烈建议阅读其他答案中引用的文章。

cpu0 101840 1 92875 80508446 4038 0 4562 0 0 0
cpu1 81264 0 68829 80842548 4424 0 2902 0 0 0

重复调用会显示更大的值:

cpu  183357 1 162020 161382289 8463 0 7470 0 0 0
cpu0 102003 1 93061 80523961 4038 0 4565 0 0 0
cpu1 81354 0 68958 80858328 4424 0 2905 0 0 0

注意 CPU0 第 5 列(空闲计数)从 80508446 移动到 80523961

每行的格式

cpuN user-time nice-time system-time idle-time io-wait ireq softirq steal guest guest_nice

一个基本的解决方案:

while true ;

for each cpu
read current counters, at least user-time system-time and idle
usage = current(user-time + system-time) - prev(user-time+system-time)
idle = current(idle) - prev(idle)
utilization = usage/(usage+idle)
// print or whatever.
set prev=current
done

关于linux - Linux 中是否可以通过/sys 获取特定核心的当前 CPU 利用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58257596/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com