top命令学习笔记
top命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。
top的使用方式
top [-d number] | top [-bnp]
参数解释:
- -d:number代表秒数,表示top命令显示的页面更新一次的间隔。默认是5秒。
- -b:以批次的方式执行top。
- -n:与-b配合使用,表示需要进行几次top命令的输出结果。
- -p:指定特定的pid进程号进行观察。
在top命令显示的页面还可以输入以下按键执行相应的功能:
- ?:显示在top当中可以输入的命令
- P:以CPU的使用资源排序显示
- M:以内存的使用资源排序显示
- N:以pid排序显示
- T:由进程使用的时间累计排序显示
- k:给某一个pid一个信号。可以用来杀死进程
- r:给某个pid重新定制一个nice值(即优先级)
- q:离开top页面
top页面中的内容解释
top页面大概分为两个部分。第一部分有如下几行:
-
第一行:
- 14:09:18 代表系统当前时间。
- up 1:16代表从电脑上次启动到现在过了一分十六秒。
- 3users代表已经登入系统的使用人数。
- load average代表1、5、15分钟的平均工作负载。一般越低说明电脑越闲置,高于1则须注意电脑是否太过复杂。
-
第二行:
- 255total代表目前系统的程序总量。
- 1running代表只有一个进程在跑。
- 254sleeping代表有254个进程处于闲置状态。
- stopped , zombie分别显示停止状态和僵尸状态。
-
第三行:CPU状态
- 0.5 us 代表用户空间占用CPU的百分比
- 0.1 sy 代表内核空间占用CPU的百分比
- 0.0 ni 代表改变过优先级的进程占用CPU的百分比
- 99.2 id 代表空闲CPU百分比
- 0.1 wa 代表IO等待占用CPU的百分比
- 0.0 hi 代表硬中断占用CPU的百分比
- 0.0 si 代表软中断占用CPU的百分比
- 0.0 st 代表steal time,用于有虚拟CPU的情况,指示被虚拟机偷掉的CPU所占百分比
-
第四行:内存状态
- 3971736 total 代表物理内存总量(4GB)
- 711624 free 代表空闲中的内存总量(0.7GB)
- 1032848 used 代表使用中的内存总量(1GB)
- 2227264 buff/cache 代表缓存的内存量(2GB)
-
第五行:SWAP交换区信息
- 4079612 total 代表交换区总量(4GB)
- 4079612 free 代表空闲交换区总量(4GB)
- 0 used 代表使用的交换区总量(0)
- 2208060 avail Mem 代表可用于进程下一次分配的物理内存数量。
- 第六行:一般为空行。在输入指令后会出现一些状态信息。
第二部分就是各进程的状态监控,其中属性为:
- PID:进程ID
- USER:进程所有者
- PR:进程优先级
- NI:NICE值。负值表示高优先级,正值表示低优先级
- VIRT:进程使用的虚拟内存总量 VIRT = SWAP + RES
- RES:进程使用的、未被换出的物理内存大小(常驻内存) RES = CODE + DATA
- SHR:共享内存大小
- S:进程状态 R=运行 S=睡眠 T=停止 Z=僵尸
- %CPU:上次更新到现在的CPU时间占用百分比
- %MEM:进程使用的物理内存百分比
- TIME+:进程使用的CPU时间总计
- COMMAND:进程名称
多U多核CPU监控
在top基本视图中,按键盘数字“1”可以监控每个逻辑CPU的状况:
显示有8个逻辑CPU,但实际上因为是四核处理器,所以只有2个物理CPU。
逻辑个数=物理个数
进程字段排序
默认进入top时,各进程是按照CPU的占用量来排序的。
敲击键盘‘b’(打开关闭加亮效果)top视图变换如下:
PID为5158为当前top视图中唯一的运行态进程。也可以敲击键盘‘y’来打开或者关闭运行态进程的加亮效果。
敲击键盘‘x’(打开/关闭排序列的加亮效果),top视图变换如下:
可以看到现在的排序列是TIME+,可以按”shift+>”或者”shift+<”左右改变排序序列。
改变进程显示字段
在top基本视图中,敲击”f”进入另一个视图,在这里可以编辑基本视图中的显示字段:
用上下键选择选项,按下空格键可以决定是否在基本视图中显示这个选项。
补充
top命令是一个非常强大的功能,但是它监控的最小单位是进程,如果想监控更小单位时,就需要用到ps或者netstate命令来满足我们的要求。我将在后续的博文中介绍这两个linux命令。