问题
Liunx的top命令如何使用? top命令中的VIRT是什么意思? top命令中的RES是什么意思? top面板应该如何来看?
top 命令
字段含义
根据 top 面板上显示的内容由上往下来看。
系统运行时间和平均负载
top - 14:49:00 up 157 days, 4:00, 2 users, load average: 0.00, 0.02, 0.05
- 当前时间;(14:49:00)
- 系统已运行天数和时间;(up 157 days, 4:00,)
- 当前登录的用户的数量;(2 users)
- 最近 5、 10 、15 分钟内的平均负载;(load average: 0.00, 0.02, 0.05)
load average 数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。 如果这个数除以逻辑CPU的数量,结果高于 5 的时候就表明系统在超负荷运转了。
任务
Tasks: 150 total, 1 running, 149 sleeping, 0 stopped, 0 zombie
- 进程总数;(150 total)
- 处于运行中的进程数;(1 running)
- 处于休眠中的进程数;(149 sleeping)
- 处于Stop中的进程数;(0 stopped)
- 处于Zombie的进程数;(0 zombie)
CPU状态
%Cpu(s): 0.1 us, 0.0 sy, 0.0 ni, 99.7 id, 0.2 wa, 0.0 hi, 0.0 si, 0.0 st
不同模式下所占 CPU 时间百分比:
- 运行(未调整优先级的)用户进程的CPU时间;(us)
- 运行内核进程的CPU时间;(sy)
- 运行已调整优先级的用户进程的CPU时间;(ni)
- 用于等待IO完成的CPU时间;(wa)
- 处理硬件中断的CPU时间;(hi)
- 处理软件中断的CPU时间;(si)
- hypervisor消耗的CPU时间;(st)
这里 CPU 的使用比率和 Windows 概念不同,需要理解用户空间和内核空间,充充电!
内存使用
KiB Mem : 16265628 total, 942008 free, 7620156 used, 7703464 buff/cache
物理内存使用
- 全部可用内存;(16265628 total)
- 空闲内存;(942008 free)
- 已使用内存;(7620156 used)
- 缓冲区和缓存之和的内存;(7703464 buff/cache)
KiB Swap: 0 total, 0 free, 0 used. 8306592 avail Mem
虚拟内存使用(交换空间)
- 交换区总量;(0 total)
- 空闲交换区总量;(0 free)
- 使用的交换区总量;(0 used)
- 可以测量可以分配和使用的内存量,而不会导致更多的交换;(8306592 avail Mem)
不能用 Windows 的内存概念理解这些数据; 例:KiB Mem 中的 used (已使用内存)指的是现在系统内核控制的内存数,free(空闲内存总量)是内核还未纳入其管控的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交换到 free 中去,因此在 liunx 上 free 内存会越来越少,但不用为此担心。 出于习惯去计算可用内存数,有一个近视计算公式:free + buff/cached = 可用内存
内存显示方式可以按 'm' 进行切换
各进程(任务)的状态监控
- 进程ID;(PID)
- 进程所有者用户名;(USER)
- 进程调度优先级,RT 以为进程运行在实时态;(PR)
- 进程的Nice值,也就是优先级,值越小代表优先级越高;(NI)
- 进程使用的虚拟内存;(VIRT)
- 进程使用的、未被换出的物理内存大小;(RES)
- 进程使用的共享内存;(SHR)
- 进程的状态;(S) D-不可中断的睡眠态;R-运行态;S-睡眠态;T-被跟踪或已停止;Z-僵尸态;
- 进程从上次更新到现在所使用的CPU时间百分比;(%CPU)
- 进程使用的可用物理内存百分比;(%MEM)
- 进程启动后到现在所使用的全部CPU时间;(TIME+)
- 进程所使用的命令,进程名称;(COMMAND)
交互命令
‘h’ 帮助
可以用 'h' 或者 '?' 显示交互命令的帮助菜单
'e' 调整数据显示
默认 top 是以 KB 方式展示,按 'e' 可以调整为 mb 或 gb
'E' 调整数据显示
默认 top 是以 KB 方式展示,按 'E' 可以调整为 mb 或 gb
‘ENTER’ 或 ‘SPACE’ 刷新显示
top命令默认在一个特定间隔(3s)后刷新显示,或者用户手动刷新。
‘X’ 打开/关闭排序列的加亮效果
top 默认的排序列是 %CPU
'shift + >' 或 'shift + <' 向左或向右改变排序列
现在改为 %MEM 来排序
多核CPU监控
在 top 视图中,按数字 1 ,可监控每个逻辑 CPU 的状况。
调节出top命令默认没有显示的字段
在 top 命令页面下,按 f ,出现如下图的字段调节页面,上面有 * 标识的代表为显示的字段。
例如我们现在要将 DATA 标为显示列:
- 选中 DATA 按下空格,则代表需要显示,可以看到 DATA 也带 * 了;
- 按下 → 锁定 DATA,此时可以将 DATA 进行移动,我们需要把 DATA 移动到 COMMAND 以上才会显示到 top 面板;
3.此时退出,按下 esc,在面板即可看到 DATA;
欢迎大家交流沟通。我的博客