CPU使用率

CPU使用率

概念

将CPU的时间划分为时间片,轮流执行任务,就达到了多任务同时运行的效果。CPU时间通过节拍率和节拍数来维护。节拍率单位是HZ,分为内核节拍率和用户节拍率,其中用户节拍率的值是固定的100(即1/100秒,10ms),每秒钟触发100次时间中断,没发生一次时间中断,节拍数加1

通过/proc虚拟文件系统,用户可以查看系统内部状态的信息,其中/proc/stat,可以查看系统CPU和任务统计信息,下面我们看一下CPU的:

$ cat /proc/stat | grep ^cpu

cpu  29246472 436 7061293 1189010031 844048 0 460919 0 0 0
cpu0 14567277 219 3544818 594761835 380172 0 228573 0 0 0
cpu1 14679194 217 3516475 594248196 463875 0 232346 0 0 0

其中,第一行表示总体情况。二三行分别是单个CPU的情况。从第2列到第11列表示不同场景下CPU的累计节拍数。

第一列表示CPU,剩余各列含义如下:

  • user (us) 代表用户态CPU时间,不包括nice时间
  • nice (ni) 好心值,表示低优先级的用户态CPU时间,可取范围是-20~19,数值越大,优先级越低
  • system (sys),内核态CPU时间
  • idle (id),空闲时间,不包括I/O时间
  • iowait (wa) 等待I/O的CPU时间
  • irq (hi) 处理硬件中断的CPU时间
  • softirq (si) 处理软件中断的CPU时间
  • steal (st) 偷走的时间,运行虚拟机时被占用的CPU时间
  • guest (guest) 运行虚拟机的CPU时间
  • guest_nice (gnice) 低优先级运行虚拟机的时间

通常所说的CPU使用率,就是CPU非空闲时间占总时间的百分比即:(CPU总时间 - CPU空闲时间) / CPU总时间,各种性能工具基本也是这么计算的,不过它们取的是一段时间的平均值。比如,top命令采用每3秒间隔的平均值,而ps采用进程的整个生命周期。

如何查看CPU使用率

常用的命令:

  • top 显示系统整体的CPU和内存使用情况,以及各个进程的资源使用情况
    • top 结果默认显示所有CPU的平均值,按1,即可分别显示各CPU的值
  • ps 只显示每个进程的资源使用情况
top - 18:39:24 up 74 days, 55 min,  6 users,  load average: 0.01, 0.24, 0.32
Tasks: 166 total,   2 running, 164 sleeping,   0 stopped,   0 zombie
%Cpu0  :  1.3 us,  0.7 sy,  0.0 ni, 98.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  1.0 us,  0.3 sy,  0.0 ni, 98.3 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
KiB Mem :  3881688 total,   376992 free,  3028316 used,   476380 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   592924 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 7145 systemd+  20   0   74048  17504    616 S   0.7  0.5  76:41.16 redis-server
 1286 root      20   0 2516200  70764   2280 S   0.3  1.8 506:00.57 java
18684 root      20   0  436544  94692   1380 S   0.3  2.4   0:06.54 celery
...

top命令

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值