200字
top/htop
2025-10-10
2025-10-10

"Table of Processes" 的缩写,是一个动态实时显示系统进程状态的交互式命令行工具。

该命令可以实时监控系统的CPU使用率、内存占用、进程信息等关键指标,帮助用户了解系统负载和进程运行情况,常用于性能分析和问题排查。

 top [选项]

常用选项

  • -d <秒数>: "delay time",指定刷新间隔时间(默认5秒),例如 top -d 2 表示每2秒刷新一次。

  • -p <进程ID>: "process ID",仅监控指定PID的进程,多个PID用逗号分隔,例如 top -p 123,456

  • -u <用户名>: "user name",仅显示指定用户的进程,例如 top -u root 只显示root用户的进程。

  • -H: "threads mode",以线程模式显示,将进程下的线程拆分显示,便于分析多线程程序。

  • -b: "batch mode",批处理模式,非交互式运行,通常用于输出到文件或管道,例如 top -b -n 1 > top.log

  • -n <次数>: "number of iterations",指定刷新次数后退出,结合 -b 使用,例如 top -b -n 3 表示刷新3次后结束。

  • -c: "command line",显示进程的完整命令行(默认只显示进程名),例如 top -c 可查看进程启动时的完整参数。

  • -i: "idle processes",不显示闲置(IDLE)的进程,仅显示活跃进程,减少输出干扰。

交互模式常用快捷键(运行 top 后可使用):

  • P:按CPU使用率排序(默认)。

  • M:按内存使用率排序。

  • T:按进程运行时间排序。

  • k:终止指定进程(需输入PID)。

  • q:退出 top

  • 1:显示所有CPU核心的使用率(多核心系统中常用)。

  • s:修改刷新间隔时间(交互式调整 -d 参数)。

参考示例

  • 示例1:实时监控系统负载及完整命令 执行 top -c,默认每5秒刷新一次,显示进程的完整命令行(包括启动参数),便于识别同名进程的具体用途(如区分不同配置的Nginx进程)。

  • 示例2:监控特定用户的进程并限定刷新次数 执行 top -b -n 5 -u www-data > www_processes_5.log,以批处理模式刷新5次www-data用户的进程信息并保存到文件,用于统计该用户进程在一段时间内的资源占用趋势。

  • 示例3:查看多核心CPU的线程级占用 执行 top -H -c,在交互模式下同时显示线程信息和完整命令,按 1 键展开所有CPU核心的使用率,可定位具体哪个CPU核心被哪个线程占用过高。

  • 示例4:脚本中提取特定进程的CPU使用率 执行 top -b -n 1 -p 1234 | awk 'NR==8 {print $9}',通过批处理模式获取PID为1234的进程当前CPU使用率(第8行为进程详情行,第9列为CPU百分比),用于脚本中的阈值告警。

  • 示例5:排除闲置进程,聚焦活跃任务 执行 top -i,仅显示正在消耗CPU/内存的活跃进程,过滤掉IDLE状态的进程,适合快速定位当前系统中真正在工作的任务。


评论