今日技能:掌握 top 命令的进阶用法
目标:不止会看 top 的默认界面,而是理解每一列数据的含义,并能进行交互操作来诊断问题。
具体任务(30分钟)
1. 基础回顾(5分钟)
打开终端,输入 top,看到默认界面。
记住三部分信息:
2. 关键字段解析(10分钟)
今天重点理解进程列表中常被忽略但至关重要的几列:
%CPU:进程使用的单个CPU核心的百分比。超过100%表示使用了多核。
TIME+:进程自启动后使用的总CPU时间,格式是分:秒.百分秒。
VIRT:虚拟内存用量。包含进程申请的所有内存(包括共享库、交换分区等)。
RES:常驻内存。进程实际使用的物理内存(不包括交换分区)。这是判断内存占用的关键指标。
SHR:共享内存。可被其他进程共享的内存部分(如共享库)。
S:进程状态。
3. 交互式操作实战(10分钟)
在 top 界面中,尝试按下这些键:
1(数字1):展开显示每个CPU核心的详细使用率。观察是否有单个核心被打满。
M(大写):按内存使用率(RES) 排序。快速找出“内存杀手”。
P(大写):按CPU使用率排序(默认)。
T(大写):按CPU累计时间(TIME+) 排序。找出长期消耗CPU的进程。
u(小写):然后输入用户名,只显示该用户的进程。
z(小写):切换彩色/高亮显示,让数据行更清晰。
Shift + > 或 Shift + <:向右或向左移动排序字段。
4. 一个诊断场景(5分钟)
假设服务器变慢,你的 top 检查流程:
看 load average(三个值):如果持续高于CPU核心数,表示系统过载。
看 %Cpu(s) 行:
按 M 看哪个进程占内存最多,按 1 看是否有CPU核心不均。
今日产出
在终端里实际操作一遍上述所有交互命令。
写下一条笔记,记录你认为最有用的一个技巧(例如:“wa值高时,下一步应该用 iotop 或 iostat 查具体磁盘IO”)。
尝试一个命令:top -b -n 1 > top_snapshot.txt,将top快照输出到文件,用于日后分析或监控脚本。
思维延伸
明日预告:学习 iostat 和 iotop,专门诊断 wa(IO等待)高的问题。
今天就开始吧!打开你的终端,输入 top,按下 1 和 M,感受一下系统在你指尖“透明”起来的感觉。