Linux系统中,top命令是常用的性能监控工具之一,可以实时获取系统各项资源的使用情况,包括CPU、内存、磁盘IO等等。
1. top命令概述
top命令是一个基于终端的任务管理器,提供了实时系统监控和负载分析功能。它显示系统中最重要的进程,并且动态地更新进程信息。在默认情况下,top命令按照CPU使用率排序,并且持续更新,可以使用快捷键来控制数据的显示和操作。
2. top命令语法
top命令的语法如下所示:
top [ -d delay ] [ -n count ] [ -p pidlist ] [ -u username ]
参数说明:
-d delay
:表示更新间隔时间,默认值为3秒。-n count
:表示更新次数,默认值为无限制。-p pidlist
:指定要监控的进程ID列表。-u username
:指定要监控的用户名。
3. top命令界面结构
top命令的界面由多个区域组成,包括标题栏、进程列表、统计信息等等。
标题栏
顶部为标题栏,用于显示一些基本信息和帮助文档,如下图所示:
top - 14:15:16 up 7 days, 23:04, 3 users, load average: 0.00, 0.01, 0.05
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 15.8 us, 5.5 sy, 0.0 ni, 77.8 id, 1.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16073632 total, 14421024 free, 414040 used, 1210568 buff/cache
KiB Swap: 8388604 total, 8302784 free, 85820 used. 15063168 avail Mem
- 当前时间:14:15:16
- 系统运行时间:7天23小时4分钟
- 用户数:3
- 平均负载:分为1分钟、5分钟和15分钟的平均负载,表示当前系统的运行负荷。
- 进程总数:123,其中包括正在运行的、睡眠的、已停止的和僵尸进程。
- CPU使用率:按照用户态(us)、内核态(sy)、空闲(id)、等待IO(wa)、硬中断(hi)、软中断(si)和虚拟化(st)等指标来显示各个状态下CPU使用率的百分比。
- 内存使用情况:显示物理内存和交换空间的使用情况。
进程列表
下方为进程列表,显示了当前系统中最耗费资源的进程信息,包括进程ID、CPU使用率、内存使用率、进程所占内存、用户、进程名称等信息。默认情况下,进程根据CPU使用率排序,可以通过按键快速地切换排序方式。下面是部分列的含义:
- PID:进程ID。
- USER:进程所有者。
- %CPU:进程占用CPU的百分比。
- %MEM:进程占用内存的百分比。
- TIME+:进程使用的CPU时间总计。
- COMMAND:进程所属的命令行或程序名。
统计信息
最底部为统计信息,包括一些系统信息和操作提示,如下图所示:
942 processes: 924 sleeping, 13 running, 1 zombie, 4 stopped
%Cpu(s): 3.5 us, 1.7 sy, 0.0 ni, 94.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16073632 total, 14557416 free, 327764 used, 1160452 buff/cache
KiB Swap: 8388604 total, 8388604 free, 0 used. 15042596 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2897 root 20 0 1682176 298728 61704 S 2.0 1.9 7:54.83 java
1273 root 20 0 8232100 6.0g 6.0g S 1.0 39.9 21:48.23 java
1 root 20 0 1283968 10376 7200 S 0.0 0.1 0:05.80 systemd
- 总进程数:包括正在运行、睡眠、僵尸以及停止状态的所有进程数量。
- CPU使用率:与标题栏相同,用于显示各个状态下的CPU使用率。
- 内存使用情况:与标题栏相同,显示实际内存和交换内存的使用状况。
4. top命令操作
在top命令中,有一些常用的操作帮助我们快速地查看信息或者执行某些操作。
排序方式
top命令主要根据CPU使用率排序,默认情况下,按照该列从高到低排序。可以使用 -o
参数来改变排序方式,例如:
top -o %MEM
上面的命令表示以内存使用率为排序关键字从高到低排序。
进程过滤
如果只想查看某个用户的进程,则可以使用 -u
参数,例如:
top -u root
上面的命令表示只显示root用户的进程。
如果只想查看某个进程的信息,则可以使用 -p
参数,例如:
top -p 1234
上面的命令表示只显示进程ID为1234的进程。
快捷键
在top命令中,还有一些常用的快捷键来帮助我们操作。
- k:终止指定进程。
- r:修改指定进程的优先级。
- H:显示进程内部的线程。
- f:向 top 命令中添加或删除要显示的字段。
- o:更改排序方式。
- q:退出 top 命令。
- h:显示 top 命令帮助文档。
- A:按下该键可按照 CPU 占用率进行排序。
- M:按下该键可按照内存占用率进行排序。
- T:按下该键可切换显示的信息,如 CPU 占用率、内存使用情况等。
- W:按下该键可将当前的 top 配置保存到文件中,避免以后需要手动重复配置。
- c:按下该键可切换显示命令行选项或进程的完整命令行。
- i:按下该键可显示或隐藏闲置进程。
- n:按下该键可设置要显示的进程数量。
- m:按下该键可切换显示内存使用情况的单位(如 KB、MB 等)。
- S:按下该键可切换显示进程状态(如 D、S、R 等)。
- V:按下该键可以显示关于 top 命令版本和作者等信息。
- z:按下该键可切换颜色模式,使显示更易读。
- 1:按下该键可切换到单核心模式,只显示一个 CPU 核心的相关信息。
- 0(零):按下该键可切换回多核心模式,显示所有 CPU 核心的相关信息。
- s:按下该键可改变两次刷新之间间隔的时间。
- &:按下该键可根据进程 ID (PID)或用户(USER)来筛选要显示的进程,可以输入多个条件,条件之间用逗号分隔。
更多快捷键可以通过按下 ?
键来查看。