top
table of processes,主要是用来描述进程的。top是linux下一个用户态工具,和windows下任务管理器差不多,就是实时显示linux系统运行状态,进程线程cpu占用,内存使用情况等等。可以实时动态地查看系统的整体运行情况,是一个综合了多方信息检测系统性能和运行信息的实用工具。
在linux下执行top
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL5YTM3UjMwcTM4ADNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
系统时间为:13:15:23 可以用date 修改:date -s 10:10:10
系统运行时间为 up 25min ,系统上电运行时长为25min
系统当前有一个user: 1 user
系统负载: load average,分别表示1分钟,5分钟,15分钟时间段
系统任务情况:Task(分别代表 任务总数,正在运行的任务数,睡眠任务数,停止任务数,僵尸任务数)
系统进程状态:R running; S sleep; D deep sleep ; T stop;Z zombie (父进程需要调用wait/waitpid来为子进程收尸,一旦wait系统调用后,子进程会从此消失。)
CPU占用统计:us,user: 用户态(un-niced)的任务cpu占用率
sy,system:内核态任务cpu占用率
ni,nice:用户态(niced)的任务cpu占用率
id,idle:空闲的cpu占用率
wa,IO-wait:等IO完成的cpu占用率
hi, 硬中断cpu占用率
si:软中断cpu占用率
st:虚拟化相关
系统内存使用情况:total 总内存大小
used 已经使用的内存大小
free:未使用的内存
cache:文件的缓存
Swap交换分区使用情况:total 交换区总量
used 使用的交换区总量
free 空闲的交换区总量
cached 缓冲的交换区总量
对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了
top展示的进程任务信息:
PID :进程号,top -H 命令可以展开线程模式
USER:运行这个进程的有效用户名,当一个文件设置了s属性后,执行这个文件的进程会具备该文件属主的权限(也就是设置EUID)。
PR:任务优先级 ,Priority,在linux系统中共有140个优先级,并将任务分成2类:实时任务和普通任务。
(1) 实时任务是霸道型任务,任务优先级范围是0~99,实时任务基于优先级进行调度,高优先级任务具有优先运行权。所以当系统中有实时任务时,top的PR字段会显示rt字样,表示是实时任务。
(2) 普通任务是nice型任务,不像rt任务那么霸道,它的调度规则是基于时间片轮转的,让大家都有机会执行,它不会占着cpu不放。
除了实时任务,系统里大部分都是普通任务,普通任务的优先级是可以看到的,PR的范围是0~39。普通任务的默认优先级是20,相当于NICE=0。普通任务可以通过调整nice值,来改变任务的优先级。
改变进程的优先级的方法有两种:
1,top命令。输入r,然后根据提示输入进程ID,再输入优先级数值。
2,renice命令。renice -n 2 -p 3432。-n,后面是优先级的值;-p,是进程号。
基本公式: PRI = 20-NICE
NI :nice值,负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存总量,kb
RES:进程使用的,未被换出的物理内存大小,kb
SHR:共享内存大小,kb
S:进程的状态: D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU:CPU时间占用百分比
%MEM:进程使用的物理内存百分比
TIME+ :进程使用的CPU时间总计
COMMAND: 进程名称
top使用快捷键:
当输入top之后,按 1 ,可以监控每个逻辑CPU的状况
当输入top之后,按 f ,可以进入top字段选择,有”*”并且标注为大写字母的字段是可显示的,没有”*”并且是小写字母的字段是不显示的。
如果还有其他功能的话,可以直接看手册: man top
友情链接:
https://blog.csdn.net/y33988979/article/details/81000162
https://www.cnblogs.com/dragonsuc/p/5512797.html