Linux CPU负载状态:%us/%sy/%ni/%id/%wa/%hi/%si/%st含义
缙哥哥发现用了雅黑的探针,在 Linux 的 CPU 状态信息中发现,有“%us、%sy、%ni、%id、%wa、%hi、%si、%st”等状态。不仅如此,你用 ssh 在服务器上使用“top”命令,也可以看到以上几项参数状态,这些是什么意思呢?缙哥哥今天查了一些文章,学习后跟大家分享一下!
CPU 相关监控项
- us:用户空间占用CPU百分比(Host.cpu.user)
- sy:内核空间占用CPU百分比(Host.cpu.system)
- ni:用户进程空间内改变过优先级的进程占用CPU百分比
- id:空闲CPU百分比(Host.cpu.idle)
- wa:等待输入输出的CPU时间百分比
- hi:硬件中断
- si:软件中断
- st:实时
监控项名称 | 监控项含义 | 单位 | 说明 |
---|---|---|---|
Host.cpu.idle | 当前空闲CPU百分比 | % | 当前CPU处于空闲状态的百分比 |
Host.cpu.system | 当前内核空间占用CPU百分比 | % | 指系统上下文切换的消耗,该监控项数值比较高,说明服务器开了太多的进程或者线程 |
Host.cpu.user | 当前用户空间占用CPU百分比 | % | 用户进程对CPU的消耗 |
Host.cpu.iowait | 当前等待IO操作的CPU百分比 | % | 该项数值比较高说明有很频繁的IO操作 |
Host.cpu.other | 其他占用CPU百分比 | % | 其他消耗,计算方式为(Nice + SoftIrq + Irq + Stolen)的消耗 |
Host.cpu.totalUsed | 当前消耗的总CPU百分比 | % | 指以上各项CPU消耗的总和,通常用于报警 |
系统平均负载监控项
除了前3组数字分别表示一分钟、五分钟、十五分钟的平均进程数量;第四组数字,分母表示系统进程总数,分子表示正在运行的进程数;最后一个数字表示最近运行的进程ID。
监控项名称 | 监控项含义 | 单位 |
---|---|---|
Host.load1 | 过去1分钟的系统平均负载 | 无 |
Host.load5 | 过去5分钟的系统平均负载 | 无 |
Host.load15 | 过去15分钟的系统平均负载 | 无 |
好了,现在是不是就很清楚很明白了呢!现在缙哥哥是越来越爱 Linux 操作系统了,不仅能充分利用内存(《Linux 运行 WordPress 内存占用高?》),低配置也能跑各种程序,而且还安全!
top命令查看CPU状态信息:%us、%sy、%ni、%id、%wa、%hi、%si、%st 表示的是什么意思
在服务器上使用top命令查看服务器资源使用情况
%Cpu(s): 10.6 us, 7.0 sy, 0.0 ni, 82.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
各项数据表示内容
us:用户空间占用CPU百分比
sy:内核空间占用CPU百分比
ni:用户进程空间内改变过优先级的进程占用CPU百分比
id:空闲CPU百分比
wa:等待输入输出的CPU时间百分比
hi:硬件中断
si:软件中断
st:实时
top命令
top命令
[root@fpm_nginx /app]# top
top - 12:19:58 up 3:45, 1 user, load average: 0.00, 0.02, 0.05
Tasks: 91 total, 1 running, 90 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 995896 total, 695140 free, 94524 used, 206232 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 731568 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6370 root 20 0 573936 17236 6096 S 0.3 1.7 0:05.52 tuned
9977 root 20 0 161892 2172 1548 R 0.3 0.2 0:00.73 top
第一行:
top - 12:19:58 up 3:45 # 启动了3小时45分钟,当前时间系统时间-12:19:58
1 user # 同时在线的用户
load average: 0.00, 0.02, 0.05 # 服务器的负载,1min的负载、5min的负载、15min的负载
第二行:
Tasks: 91 total # 当前有91个工作任务
1 running # 1个正在执行的
90 sleeping # 90个在休眠的
0 stopped # 没有被停止的
0 zombie # 没有僵尸进程
第三行:
%Cpu(s): 0.3 us, 0.3 sy # 用户使用cpu的百分比
us user # 用户态
sy system # 内核态
ni # 优先级
99.3 id # cpu空闲程度
0.0 wa # 等待的状态的进程占cpu的百分比
0.0 hi # 硬中断
0.0 si # 软中断
0.0 st # 虚拟机占用物理机的百分比
什么是中断
中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新的程序,处理完毕后又返回原被暂停的程序继续运行。
什么是软中断呢?
软中断和硬中断都有一个共同的特点,都会中断当前操作,但是呢又有所区别,软中断当在进行一个任务的时候来了一个新的任务,就将先停止当前的任务,然后立马将新的任务放入内存当中,延迟处理新任务,最后此 任务交由线程来进行处理。
为了满足实时系统的要求,中断处理应该是越快越好。linux为了实现这个特点,当中断发生的时候,硬中断处理那些短时间就可以完成的工作,而将那些处理事件比较长的工作,放到中断之后来完成,也就是软中断 (softirq)来完成。
什么是硬中断呢
同样在执行一个进程的时候,又有新的任务请求访问,cpu会立马对当前进程进行处理,但是呢新的进程只能处于等待,等待上进程结束之后,才能对新进程进行处理
由与系统相连的外设(比如网卡、硬盘)自动产生的。主要是用来通知操作系统,系统外设状态的变化。比如当网卡收到数据包的时候,就会发出一个中断。我们通常所说的中断指的是硬中断(hardirq)。
top-的使用方法
[root@fpm_nginx ~]# yum -y install htop
htop
top
-d # 指定动态变化时间
-p # 查看指定pid的进程
-u # 查看指定用户的进程
-b # 输出完整的内容
top -d1 -b -n2 >top.txt
-n # 指定次数
# top的快捷键
h # 查看帮助
z # 高亮显示
1 # 显示所有cpu
s # 设置刷新时间
b # 高亮显示处于R状态的进程
M # 按内存百分比排序输出
P # 按CPU使用百分比排序输出
R # 对排序进行反转
f # 自定义显示字段
k # kill掉指定的pid进程
W # 保存top环境设置 ~/.toprc
B # 加粗
q # 退出
PID # 进程id
USER # 用户
PR # 优先级
NI # nice值
VIRT # 虚拟内存
RES # 真实内存
SHR # 共享内存
S # 进程的状态
%CPU # 占用cpu的百分比
%MEM # 占用内存的百分比
TIME+ # 进程运行时间
COMMAND # 进程运行的命令