top 概述
`top` 定期更新并显示系统资源(CPU、内存、交换区)使用情况和各个进程的详细信息。通过它,您可以轻松识别哪些进程占用了大量系统资源,并监控系统的整体健康状态。
top 的主要角色
`top` 命令主要用于以下目的:
主要应用领域
- {'key': '系统监控', 'value': '实时查看 CPU、内存和交换空间的使用情况。'}
- {'key': '进程管理', 'value': '了解正在运行的进程状态,必要时结束或调整优先级。'}
- {'key': '性能问题诊断', 'value': '分析系统速度下降或无响应现象的原因。'}
- {'key': '资源使用优化', 'value': '识别并采取措施处理过度使用资源的进程。'}
top 输出界面构成
`top` 命令主要分为两个部分显示信息:
顶部摘要信息
汇总并显示系统的整体状态。
- `uptime`: 系统启动以来的经过时间
- `load average`: 过去 1 分钟、5 分钟、15 分钟的系统平均负载(处于执行队列中的进程数)
- `Tasks`: 总进程数、正在运行、休眠、停止、僵尸进程数
- `%Cpu(s)`: CPU 使用率(us: 用户,sy: 系统,ni: nice,id: 空闲,wa: I/O 等待等)
- `MiB Mem`: 物理内存(RAM)的总量、使用量、空闲空间、缓冲/缓存使用量
- `MiB Swap`: 交换内存的总量、使用量、空闲空间
底部进程列表
显示每个正在运行的进程的详细信息。该列表默认按 CPU 使用率(%)排序。
- `PID`: 进程 ID
- `USER`: 运行进程的用户
- `PR`: 优先级(Priority)
- `NI`: Nice 值(用于调整优先级)
- `VIRT`: 进程使用的虚拟内存总量
- `RES`: 进程使用的实际物理内存(RAM)量(常驻内存)
- `SHR`: 进程共享的内存量(共享内存)
- `S`: 进程状态(R: 正在运行,S: 休眠,Z: 僵尸,T: 停止等)
- `%CPU`: 进程的 CPU 使用率(实时)
- `%MEM`: 进程的内存使用率(实时)
- `TIME+`: 进程使用的总 CPU 时间
- `COMMAND`: 进程执行命令
`top` vs `htop`
`htop` 是 `top` 的改进版本,提供更友好的用户界面(颜色、鼠标支持)和功能(滚动、搜索、直接结束)。在大多数情况下,`htop` 更加便利。如果未安装 `htop`,可以通过包管理器进行安装(例如:`sudo apt install htop`)。
top 命令选项及交互
`top` 启动时可以指定命令行选项,并且在运行时可以通过各种按键输入执行屏幕显示方式、进程排序、退出等操作。
1. 命令行启动选项
2. top 运行中的交互键
生成的命令:
请尝试组合命令。
描述:
`top` 执行命令。
通过组合这些选项,您可以与 AI 一起虚拟地执行命令。
使用示例
通过 `top` 命令的各种应用示例,学习如何实时监控系统资源使用情况并诊断问题。
开始基本系统监控
top
通过最基本的 `top` 命令执行,系统的当前状态和进程列表每 3 秒更新一次。
查看 CPU 使用率最高的 5 个进程(1 秒间隔)
top -d 1 -n 5
`top` 执行后仅更新 5 次,每次间隔 1 秒,然后退出。对于快速识别特定时刻的 CPU 负载原因非常有用。
仅监控特定用户(root)的进程
top -u root
仅过滤显示系统上所有 `root` 用户执行的进程。对于跟踪系统守护进程或服务的资源使用量非常有用。
仅监控特定进程 ID(PID)
top -p 12345
实时监控 PID 为 `12345` 的单个进程的信息。对于精确跟踪特定应用程序的资源消耗非常有用。
按内存使用率排序(运行中的交互)
top # then press Shift + m
`top` 在运行状态下,按 `Shift + m` 键将进程列表按内存使用率高低进行排序。(不能在命令行中直接指定)
结束特定进程(运行中的交互)
top # then press 'k', enter PID, then optionally '9' for SIGKILL
`top` 运行状态下按 `k` 键,将提示输入要结束的进程 PID。输入 PID 后按 `Enter`,默认发送 SIGTERM 信号。要强制结束,请输入信号号 9。