top命令查看CPU状态信息:%us、%sy、%ni、%id、%wa、%hi、%si、%st 表示的是什么意思 top 命令详解

时间:2024-03-03 16:02:31

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		# 进程运行的命令