top 命令是 Linux 下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于 Windows 的任务管理器。

top用于动态监控进程所占系统资源,每隔3秒变一次。这个命令的特点是把占用系统资源(CPU,内存,磁盘IO等)最高的进程放到最前面。top命令打印出了很多信息,包括系统负载(loadaverage)、进程数(Tasks)、cpu使用情况、内存使用情况以及交换分区使用情况。

命令内容详解:
在命令行输入 top 显示如下

第一行

系统信息:

字符 描述
top - 15:35:56 当前系统时间
up 1:30 系统已运行时间
2 users 在线用户,包含系统用户
load average: 0.01, 0.03, 0.05 系统负载。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

第二行

系统进程信息

字符 描述
Tasks: 92 total 总进程数
2 running 运行进程数
91 sleeping 睡眠进程数
0 stopped 停止进程数
0 zombie 僵尸进程数

僵尸进程 :一个子进程在其父进程没有调用wait()或waitpid()的情况下,这个进程就是僵尸进程,如果其父进程还存在一直不调用wait(),则该僵尸进程将无法回收,等到父进程退出后该进程被init回收。

第三行

Cpu使用信息

字符 描述
%Cpu(s): 0.0 us cpu占用率(%),用户进程占用cpu百分率
0.7 sy 系统占用CPU百分比
0.0 ni 用户进程空间内改变过优先级的进程占用CPU百分比
99.3 id cpu空闲率
0.0 wa 等待IO的CPU时间百分比
0.0 hi 硬中断(Hardware IRQ)占用CPU的百分比
0.0 si 软中断(Software Interrupts)占用CPU的百分比

第四行

内存使用信息

字符 描述
KiB Mem : 999936 total 内存总量
391636 free 系统空闲内存大小
170252 used 系统使用内存大小
438048 buff/cache 缓存大小

第五行

Swap内存信息

字符 描述
KiB Swap: 1048572 total Swap 总量
1048572 free Swap空闲量
0 used Swap使用量

第六行

进程信息

字符 描述
PID 进程pid
USER 进程所属用户
PR 进程优先级
NI nice值。越小优先级越高,最小-20,最大20(用户设置最大19)
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR 共享内存大小,单位kb
S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU 进程占用cpu百分比
%MEM 进程占用内存百分比
TIME+ 进程运行时间
COMMAND 进程名称

top 常用交互命令(进入top后使用):

  • c 换显示命令名称和完整命令行
  • M 根据内存大小排序
  • P 根据CPU大小排序
  • T 根据时间大小排序
  • u 输入指定用户名后,查看输入用户名的进程
  • q 退出top
  • 1 注意:是数字1,不是字母l,监控每个逻辑CPU的状况(对于多核CPU时)
  • b 打开/关闭高亮效果
  • i 忽略闲置和僵死进程。这是一个开关式命令
  • k 终止指定的进程。按下k键–>再输入要杀死的进程的pid–>按enter键–>(选择信号类型,以数字标示,默认15为杀死)本步可省略按enter键(常用为-9)

kill 信号大全详见: https://www.2cto.com/os/201202/119425.html

扩展:比 top 更好使用的工具: htop: https://huankai.github.io/2018/04/23/%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4_htop/