CPU相关

CPU相关

核心数

# 获取物理核心数
grep 'core id' /proc/cpuinfo | sort -u | wc -l
# 获取逻辑核心数
grep -c '^processor' /proc/cpuinfo

# 同时显示物理核心数和逻辑核心数
echo "物理核心数=$(grep 'core id' /proc/cpuinfo | sort -u | wc -l), 逻辑核心数=$(grep -c '^processor' /proc/cpuinfo)"

物理机和虚拟机

# 虚拟机
grep -E "hypervisor|vmx|svm" /proc/cpuinfo

/proc/${PID}/stat文件说明

重要字段说明
utime (14):进程在用户态运行的时间(时钟滴答数jiffies)
stime (15):进程在内核态运行的时间(时钟滴答数)
cutime (16):子进程在用户态运行的时间
cstime (17):子进程在内核态运行的时间
starttime (22):进程启动时间(可用于计算进程存活时间)

awk '{print $1,$2,$14,$15,$16,$17}' /proc/${PID}/stat

# 52个字段
awk '{print NF}' /proc/${PID}/stat
awk '{for(i=1;i<=NF;i++) print i, $i}' /proc/${PID}/stat
awk '{for(i=1;i<=NF;i++) print i": "$i}' /proc/${PID}/stat

时钟滴答(clock tick)说明

Linux系统通常每秒有100个时钟滴答(可通过sysconf(_SC_CLK_TCK)getconf CLK_TCK获取实际值),因此计算CPU使用率时需要将滴答数除以这个频率得到秒数。

/proc/stat文件说明

CPU 使用统计(核心部分)

格式:cpuN user nice system idle iowait irq softirq steal guest guest_nice

字段说明(所有值都是时钟滴答数,单位通常是 jiffies):
user:用户态运行时间
nice:低优先级用户态运行时间(nice值>0的进程)
system:内核态运行时间
idle:空闲时间(不含IO等待)
iowait:等待IO完成的时间
irq:处理硬件中断的时间
softirq:处理软件中断的时间
steal:虚拟环境下被hypervisor偷走的时间
guest:运行虚拟CPU的时间(Linux 2.6.24+)
guest_nice:低优先级虚拟CPU时间(Linux 2.6.33+)

grep '^cpu ' /proc/stat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值