介绍
在本实验中,我们将探索 Linux 的 top 命令,这是一个用于监控系统性能和资源利用的强大工具。我们将从了解 top 命令的基本功能开始,包括它显示有关运行进程、CPU、内存和其他系统资源的实时信息的能力。然后,我们将深入研究各种选项和自定义功能,以便根据我们的特定需求调整 top 命令的输出,从而有效地分析系统性能并识别潜在的瓶颈。
理解 top 命令
在这一步中,我们将学习 top 命令,这是一个用于监控 Linux 系统性能和资源利用的强大工具。top 命令提供了有关运行进程、CPU、内存和其他系统资源的实时信息。
让我们从运行 top 命令开始:
$ top
示例输出:
top - 14:22:37 up 1 day, 12:34, 0 users, load average: 0.00, 0.01, 0.05
Tasks: 101 total, 1 running, 99 sleeping, 1 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1992.0 total, 1537.0 free, 235.0 used, 220.0 buff/cache
MiB Swap: 2047.9 total, 2047.9 free, 0.0 used. 1555.3 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 8788 5688 3828 S 0.0 0.3 0:02.14 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
5 root 20 0 0 0 0 I 0.0 0.0 0:00.00 slub_flushwq
top 命令显示了各种系统信息,包括:
- Uptime(运行时间):系统自上次启动以来的时间。
- Tasks(任务):运行中、睡眠中、停止中和僵尸进程的总数。
- CPU 利用率:在用户模式、系统模式、nice 模式、空闲、等待、硬件中断和软件中断中花费的 CPU 时间百分比。
- 内存使用情况:总内存、空闲内存、已用内存和缓冲/缓存内存。
- Swap 使用情况:总交换空间、空闲交换空间和已用交换空间。
- 进程列表:按 CPU 或内存使用情况排序的最消耗资源的进程列表。
你可以通过按下各种键来自定义 top 命令的输出,例如:
h:显示帮助菜单1:在每 CPU 和聚合 CPU 利用率之间切换f:管理显示的列o:自定义排序顺序u:按特定用户过滤进程
要退出 top 命令,请按 q。
探索 top 命令的选项和自定义功能
在这一步中,我们将探索 top 命令中可用的各种选项和自定义功能,以便根据你的特定需求调整输出。
让我们从显示帮助菜单开始:
$ top -h
这将显示所有可用选项及其描述。一些常用的选项包括:
-d:设置更新之间的延迟(默认是 3 秒)-n:指定迭代次数(默认是无限次)-p:监控特定的进程 ID-u:显示特定用户拥有的进程-o:按特定列对进程列表进行排序
例如,要显示按内存使用排序的前 5 个进程,可以运行:
$ top -o %MEM -n 5
示例输出:
top - 14:30:37 up 1 day, 12:42, 0 users, load average: 0.00, 0.00, 0.00
Tasks: 101 total, 1 running, 99 sleeping, 1 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1992.0 total, 1537.0 free, 235.0 used, 220.0 buff/cache
MiB Swap: 2047.9 total, 2047.9 free, 0.0 used. 1555.3 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 8788 5688 3828 S 0.0 0.3 0:02.14 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
5 root 20 0 0 0 0 I 0.0 0.0 0:00.00 slub_flushwq
你还可以通过在 top 命令中按下 f 键来自定义显示的列。这将允许你添加、删除或重新排列列,以满足你的需求。
要退出 top 命令,请按 q。
使用 top 分析系统性能
在这最后一步中,我们将使用 top 命令来分析系统性能,并识别任何潜在的瓶颈或问题。
让我们从监控系统的整体性能开始:
$ top
注意以下关键指标:
- CPU 利用率:在用户模式、系统模式、nice 模式、空闲、等待、硬件中断和软件中断中花费的 CPU 时间百分比。高 CPU 利用率可能表明存在 CPU 密集型进程或应用程序。
- 内存使用情况:总内存、空闲内存、已用内存和缓冲/缓存内存。高内存使用率可能表明存在内存密集型进程或潜在的内存泄漏。
- Swap 使用情况:总交换空间、空闲交换空间和已用交换空间。过度的 Swap 使用可能表明物理内存不足。
- 进程列表:按 CPU 或内存使用情况排序的最消耗资源的进程列表。识别任何消耗大量系统资源的进程。
要进一步调查特定进程,你可以使用以下选项:
k:终止一个进程r:调整进程的优先级(renice)f:管理显示的列o:自定义排序顺序
例如,要查看按 CPU 使用率排序的前 5 个进程:
$ top -o %CPU -n 5
示例输出:
top - 14:36:37 up 1 day, 12:48, 0 users, load average: 0.00, 0.00, 0.00
Tasks: 101 total, 1 running, 99 sleeping, 1 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1992.0 total, 1537.0 free, 235.0 used, 220.0 buff/cache
MiB Swap: 2047.9 total, 2047.9 free, 0.0 used. 1555.3 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 8788 5688 3828 S 0.0 0.3 0:02.14 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
5 root 20 0 0 0 0 I 0.0 0.0 0:00.00 slub_flushwq
这将帮助你识别任何消耗大量 CPU 资源的进程。
要退出 top 命令,请按 q。
总结
在本实验中,我们首先学习了 top 命令,这是一个用于监控 Linux 系统性能和资源利用的强大工具。我们探索了 top 命令显示的各种系统信息,包括运行时间、任务统计、CPU 和内存使用情况,以及最消耗资源的进程列表。我们还学习了如何通过使用不同的键来自定义 top 命令的输出,例如在每 CPU 和聚合 CPU 利用率之间切换、管理显示的列以及自定义进程列表的排序顺序。



