转自:https://www.jianshu.com/p/aabd8232b866
这里仅展示top命令结果的参数含义,具体操作跳转Linux的top命令(操作篇)
top命令是很强大的机器分析命令,类似于windows的任务管理器,但是可以看的性能指标更多。下面记录一下,top的详细参数意义和操作。
参数的含义
我们详细看看,输入top命令以后,各个参数的意义,如下:
top
第一行的参数意义
10:59:22 : 当前系统时间
up 37 days, 20:48 : 系统累积以及运行的时间
3 users : 当前用户数量
load average: 0.00,0.00,0.00 : 系统负载
系统负载
系统负载的三个数值分别表示的是1分钟,5分钟和15分钟系统负载的平均值
假设机器的cpu核心数为n,则当负载的平均值为n的时候,机器就是刚好满负载运行了,如果大于n,就是超负荷运行了。
#查看cpu核心数,可以通过这个命令看看有多少个cpu信息
cat /proc/cpuinfo
我这台机器是双核心的,所以负荷是很低的
0.00 < 2
第二行的意义
Tasks: 112 total : 进程总数
1 running : 正常运行的进程数量
121 sleeping : 休眠的进程数量
0 stopped : 停止的进程数量
0 zombie : 僵死进程数量
第三行的意义
0.2 us : 用户进程占用cpu资源的百分比
0.2 sy : 内核进程占用cpu资源的百分比
0.0 ni : 用户进程空间内改变过优先级的进程占cpu资源的百分比
99.7 id : 空闲cpu百分比
0.0 wa : 等待io的进程占cpu资源的百分比
0.0 hi : 硬中断占用cpu的百分比
0.0 si: 软中断占用的百分比
0.0 st : 虚拟机占用百分比
第四行的意义
38660168k total : 物理内存的总容量
3106020k used : 使用的物理内存总量
754148k free : 空闲的物理内存总量
157796k buffers : 用在内核缓存的内存总量
第五行的意义
524280k total : 交换区内存总容量
0k used : 交换区内存使用的容量
524280k used: 交换区空闲的内存容量
848380k cached : 缓存的交换区总量
内存
Swap:表示硬盘上交换分区的使用情况。一般来说只有物理内存被当前进程实际占用完,才会使用到swap。实际上内核可能会主动地将一些暂时不用的内存块写入到磁盘的交换区(swap),这样节约出来的内存就可以用作他用了。这些被写入swap的内存,只有当实际需要的时候,才会被重新写入内存。
计算实际内存占用:
机器还有多少剩余内存是我们比较关心的,linux上看剩余内存相对来说不是那么直观。从top命令看到的free并不是实际的剩余内存,used查看的使用内存也并不是实际占用的内存,因为used内存包括了bufferd和cached内存,这部分也是属于可用的。我们可以用 free -h查看实际使用的内存:如下图:
实际使用内存=used - buffers - cached = 3.0G - 154M - 828M = 2.0G
实际空余内存=free + buffers + cached = 740M + 154M + 828M = 1.7G
显然,free -h命令,所得结果的第二行就是我们上面两个计算公式计算出来的结果:
进程信息
介绍完top命令头几行的信息意义,接下来就看具体进程的信息含义了。
进程的信息含义如下:
PID : 进程id,标记唯一进程
USER : 进程用户名
PR : 优先级
NI : nice值。负值表示高优先级,正值表示低优先级
VIRT : 进程使用的虚拟内存的大小
RES : 指进程除去使用交换区swap的内存,使用的物理内存的大小
SHR : 进程共享内存的大小
S : process status 进程状态 。 分别有D R S T Z ,分别表示不可中断的休眠、正在运行、休眠中、暂停或者跟踪状态、僵死状态
%CPU : cpu的使用量占总cpu时间的百分比
%MEM : 进程使用的物理内存百分比
TIME+ : 进程使用的CPU时间总计,精确到1/100秒
COMMAND : 命令或者进程名称
命令选项
-b
:以批处理模式操作,即不断输出刷新的信息到终端
-c
:显示完整的治命令
-d
:屏幕刷新间隔时间
-I
:忽略失效过程
-s
:保密模式
-S
:累积模式
-i <时间>
:设置间隔时间 ,刷新间隔时间
-u <用户名>
:指定用户名
-p <进程号>
:指定进程
-n <次数>
:循环显示的次数
交互命令
h
:显示帮助画面,给出一些简短的命令总结说明
k
:终止一个进程
i
:忽略闲置和僵死进程
q
:退出程序
r
:重新安排一个进程的优先级别
S
:切换到累计模式
s
:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s
f或者F
:从当前显示中添加或者删除项目
o或者O
:改变显示项目的顺序
l
:切换显示平均负载和启动时间信息
m
:切换显示内存信息
t
:切换显示进程和CPU状态信息
c
:切换显示命令名称和完整命令行
M
:根据驻留内存大小进行排序
P
:根据CPU使用百分比大小进行排序
T
:根据时间/累计时间进行排序
w
:将当前设置写入~/.toprc文件中