常见命令-资源查看-top命令实践


1. 快速诊断系统负载过高

场景:服务器响应变慢,怀疑 CPU 或内存资源耗尽。
操作

top

关键指标
load average(1/5/15分钟平均负载):若超过 CPU 核数,可能资源紧张。
%CPU:观察是否有进程长期占用过高 CPU(如 90%+)。
%MEM:检查是否有进程消耗大量内存(可能导致 Swap 使用激增)。


2. 定位异常进程

场景:某个未知进程导致系统卡顿,需快速找到并终止。
操作

top -o %CPU   # 按 CPU 使用率排序
top -o %MEM   # 按内存使用率排序

步骤

  1. P(CPU)或 M(内存)手动排序。
  2. 记录异常进程的 PID
  3. 使用 kill -9 PID 终止进程(谨慎操作)。

3. 监控内存泄漏

场景:怀疑应用存在内存泄漏,需持续观察内存变化。
操作

top -d 5 -p <PID>   # 每5秒刷新,监控特定进程

关注点
RES(实际内存占用)是否随时间持续增长。
VIRT(虚拟内存)与 RES 的差异是否异常。


4. 分析多核 CPU 使用情况

场景:检查 CPU 是否均匀负载,是否存在单核瓶颈。
操作

top → 按 `1` 展开所有 CPU 核心状态

输出示例

%Cpu0  : 20.3%us,  5.6%sy, ...
%Cpu1  : 95.0%us,  2.0%sy, ...  # 第2个核心满载

5. 检查僵尸进程(Zombie)

场景:系统存在僵尸进程,需清理。
操作

top → 观察 `S` 列(进程状态)中的 `Z` 标记

处理
ps -ef找到父进程 PID(PPID),重启父进程以释放僵尸。


6. 监控用户专属进程

场景:仅关注特定用户(如 nginx)的进程资源使用。
操作

top -u nginx

7. 批处理模式(自动化脚本)

场景:将 top 数据导出到文件供后续分析。
操作

top -b -n 3 > top_log.txt   # 输出3次快照到文件

8. 交互命令增强分析

t:切换 CPU 和负载图形显示。
c:显示进程的完整命令行。
V:以树形结构显示进程父子关系。


注意事项
高亮警告:若发现 swap 频繁使用(Si/So 高),需优先排查内存瓶颈。
替代工具:对更友好的界面可使用 htop,或结合 vmstat/iostat 综合分析。

通过灵活运用 top 的排序、过滤和监控功能,运维人员可以高效定位资源瓶颈和异常进程,保障系统稳定性。


9. 运维场景速查表

场景 操作指令/快捷键 关键指标 参考来源
快速定位CPU瓶颈 P %CPU > 80%
内存泄漏排查 M键 + 监控RES增长 %MEM持续上升
容器资源超限 docker stats + top -p RES接近cgroup限制
僵尸进程清理 ps -ef | grep defunct Tasks行的zombie计数
自动化性能采样 top -b -n 10 -d 1 不交互间隔1秒输出10次停止

10. 结果输出速查表

第一部分:顶部统计信息

字段 解释
top - 时间 当前系统时间(如 17:56:13)。
up 运行时间 系统已连续运行的总时间(如 161 days, 3:11)。
users 当前登录系统的用户数(如 3 users)。
load average 系统在1分钟、5分钟、15分钟内的平均负载(如 0.23, 0.37, 0.18)。单核CPU负载超过1表示超负荷,多核时需按“核数×0.7”判断是否正常。
Tasks 进程总数及状态:
- total:总进程数
- running:运行中
- sleeping:休眠
- stopped:停止
- zombie:僵尸进程(若非0需检查原因)。
%Cpu(s) CPU使用情况:
- us:用户空间占用(应用程序)
- sy:内核空间占用(系统调用)
- ni:调整优先级的进程占用
- id:空闲CPU百分比(高空闲但系统卡顿可能因I/O或内存不足)
- wa:等待I/O时间(高值表示磁盘瓶颈)
- hi/si:硬件/软件中断占用
- st:虚拟化环境中被其他虚拟机占用的时间。
Mem 物理内存使用:
- total:总量
- used:已用(含缓存)
- free:空闲
- buff/cache:缓冲区/缓存(可被快速释放)。
Swap 交换空间使用:
- total:总量(建议为物理内存的2倍)
- used:已用(频繁使用可能需扩展内存)
- free:空闲。

第二部分:进程信息

字段 解释
PID 进程的唯一标识符,用于跟踪或终止进程。
USER 进程所有者,显示运行该进程的用户账号。
PR 进程优先级(rt表示实时进程,优先级高于普通进程)。
NI Nice值(范围-20到19),负值表示高优先级,正值表示低优先级。
VIRT 进程使用的虚拟内存总量(包含共享库和未映射的内存,单位KB),公式为 VIRT = SWAP + RES
RES 进程实际占用的物理内存(单位KB),公式为 RES = CODE + DATA
SHR 进程使用的共享内存(单位KB),多个进程共享同一库或资源时显示。
S 进程状态:
- R:运行中
- S:休眠(可中断)
- D:不可中断休眠(通常等待I/O)
- Z:僵尸进程(需手动清理)
- T:停止或被跟踪。
%CPU 进程占用的CPU百分比(多核时可能超过100%,如400%表示占满4核)。
%MEM 进程占用的物理内存百分比,用于识别内存密集型进程。
TIME+ 进程累计使用的CPU时间(格式:分:秒.百分秒),反映进程对CPU的长期占用情况。
COMMAND 启动进程的命令名或完整路径(按c键可切换显示模式)。
posted @ 2025-03-13 13:06  天天向上327  阅读(120)  评论(0)    收藏  举报