Linux-top命令解释
- 常用参数
- 查看所有逻辑核的运行情况:1
- 查看指定进程的情况:-p pid
- 显示进程的完整命令:-c
- 面板指标解释
- 第一行top
- 第二行tasks
- 第三行%Cpu
- 第四行Mem
- 第五行Swap
- 第六行各进程监控
- PID:进程ID
- USER:进程所有者的实际用户名。
- PR:进程的调度优先级
- NI:进程的nice值(优先级)
- VIRT:进程使用的虚拟内存。
- RES:驻留内存大小。
- SHR:进程使用的共享内存。
- S:进程的状态
- %CPU:自从上一次更新时到现在任务所使用的CPU时间百分比。
- %MEM:进程使用的可用物理内存百分比。
- TIME+:任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。
- COMMAND:运行进程所使用的命令。进程名称(命令名/命令行)
- free和available区别
- free
- available
常用参数
查看所有逻辑核的运行情况:1
输入top后,按一下数字1,将会展示所有逻辑核的使用情况
- 未按数字1的情况:
- 按了数字1的情况
查看指定进程的情况:-p pid
命令top -p 19793
显示进程的完整命令:-c
命令top -c
面板指标解释
第一行top
系统时间:18:11:13
运行时间:up 47 min
当前登录用户: 2 user
负载均衡(uptime) load average: 0.04, 0.05, 0.05
average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了
第二行tasks
总进程:198 total
运行:1 running
休眠:197 sleeping
停止: 0 stopped
僵尸进程: 0 zombie
第三行%Cpu
0.3us【user space】— 用户空间占用CPU的百分比。
0.5sy【sysctl】— 内核空间占用CPU的百分比。
0.0ni【】— 改变过优先级的进程占用CPU的百分比
98.2id【idolt】— 空闲CPU百分比
0.8wa【wait】— IO等待占用CPU的百分比
0.0hi【Hardware IRQ】— 硬中断占用CPU的百分比
0.1si【Software Interrupts】— 软中断占用CPU的百分比
0.0st【】虚拟机被hypervisor偷去的CPU时间
第四行Mem
物理内存使用情况
3861076k total — 物理内存总量(3770M)
1325384k free — 空闲内存总量(1294M)
1663324k used — 使用中的内存总量(1624M)
872368k buffers — 缓存的内存量 (851M)
第五行Swap
交换分区使用情况
2097148k total — 交换区总量(2047M)
2097148k free — 空闲交换区总量(2047M)
0k used — 使用的交换区总量(0k)
1935484k avail Mem — 可用交换取总量(1890M)
第六行各进程监控
PID:进程ID
进程的唯一标识符
USER:进程所有者的实际用户名。
PR:进程的调度优先级
这个字段的一些值是’rt’。这意味这这些进程运行在实时态。
NI:进程的nice值(优先级)
越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存。
进程“需要的”的虚拟内存总量,单位kb。VIRT=SWAP+RES
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
RES:驻留内存大小。
驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小
SHR:进程使用的共享内存。
共享内存大小,单位kb
1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来
S:进程的状态
它有以下不同的值:
- D : 不可中断的睡眠态。
- R : 运行态
- S : 睡眠态
- T : 被跟踪或已停止
- Z : 僵尸态
%CPU:自从上一次更新时到现在任务所使用的CPU时间百分比。
%MEM:进程使用的可用物理内存百分比。
TIME+:任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。
COMMAND:运行进程所使用的命令。进程名称(命令名/命令行)
free和available区别
free
free 是真正尚未被使用的物理内存数量。
available
available 是应用程序认为可用的内存数量,available = free + buffer + cache (注:只是大概的计算方法)
Linux 为了提升读写性能,会消耗一部分内存资源缓存磁盘数据,对于内核来说,buffer 和 cache 其实都属于已经被使用的内存。但当应用程序申请内存时,如果 free 内存不够,内核就会回收 buffer 和 cache 的内存来满足应用程序的请求(不过,并不是所有缓存都可以回收,有些缓存可能正在使用中)。