当前位置: 代码网 > 服务器>服务器>Linux > Linux使用top命令实时进程监控的完整指南

Linux使用top命令实时进程监控的完整指南

2026年08月18日 Linux 我要评论
top 是 linux 系统中最常用的实时进程监控工具,动态显示系统中各个进程的资源使用情况,包括 cpu、内存、运行时间等。它类似于 windows 的任务管理器,是系统管理和性能排查的基础工具。快

top 是 linux 系统中最常用的实时进程监控工具,动态显示系统中各个进程的资源使用情况,包括 cpu、内存、运行时间等。它类似于 windows 的任务管理器,是系统管理和性能排查的基础工具。

快速参考

top [选项]

top 默认每 3 秒刷新一次,按 q 退出。掌握其交互快捷键(排序、过滤、杀进程等)能显著提升系统排障效率。

基本用法

# 启动 top
top

# 指定刷新间隔
top -d 2      # 每 2 秒刷新
top -d 0.5    # 每 0.5 秒刷新

# 监控指定 pid
top -p 1234
top -p 1234,5678,9012    # 多个 pid

# 监控指定用户的所有进程
top -u nginx
top -u www-data

# 批处理模式(不交互,输出到文件)
top -b -n 1 > top_output.txt
top -b -n 5 > top_history.txt    # 采样 5 次

# 只显示特定次数后退出
top -n 10          # 10 次后退出
top -d 1 -n 5      # 每秒刷新,5 次后退出

# 组合使用
top -d 2 -u www-data -b -n 3

理解输出信息

# top 输出头部信息:
# top - 14:30:25 up 10 days,  5:30,  2 users,  load average: 0.52, 0.38, 0.29
# tasks: 587 total,   1 running, 586 sleeping,   0 stopped,   0 zombie
# %cpu(s):  3.2 us,  1.0 sy,  0.0 ni, 95.5 id,  0.1 wa,  0.0 hi,  0.2 si
# mib mem :  16000.0 total,   2000.0 free,   8000.0 used,   6000.0 buff/cache
# mib swap:   4096.0 total,   4090.0 free,      6.0 used.   7800.0 avail mem
#    pid user      pr  ni    virt    res    shr s  %cpu  %mem     time+ command
#   1234 mysql     20   0  500000 200000  12000 s   5.0   1.2  10:25.30 mysqld
#   5678 root      20   0  100000  50000   8000 s   2.0   0.3   5:12.45 nginx

# load average: 1分钟、5分钟、15分钟平均负载
# us: 用户态cpu   sy: 内核态   ni: nice优先级
# id: 空闲       wa: io等待    hi: 硬件中断
# si: 软件中断    st: 虚拟化偷取

# virt: 虚拟内存   res: 常驻内存   shr: 共享内存
# s: 状态 (r=运行, s=睡眠, z=僵尸)

交互快捷键

# === 排序 ===
p    # 按cpu使用率排序(默认)
m    # 按内存使用率排序
n    # 按pid排序
t    # 按运行时间排序

# === 显示控制 ===
1    # 显示/隐藏所有cpu核心的独立信息
l    # 显示/隐藏负载和运行时间
t    # 显示/隐藏任务和cpu信息行
m    # 显示/隐藏内存信息行

# === 内存单位 ===
e    # 切换内存显示单位 (kib/mib/gib/tib/pib/eib)

# === 窗口 ===
w    # 保存当前配置

# === 进程操作 ===
k    # 杀进程(输入pid和信号)
r    # 修改进程nice值(renice)
f    # 选择显示/隐藏字段

# === 其他 ===
h    # 帮助
q    # 退出
c    # 切换命令名显示(完整路径/命令名)
d/s  # 修改刷新间隔
u    # 只显示指定用户的进程
o/o  # 自定义排序条件
z    # 彩色/单色切换

进程操作

# 在 top 中按 k 杀进程:
# 1. 按 k
# 2. 输入 pid
# 3. 输入信号 (默认 15/sigterm)
#    9  = sigkill (强制)
#    15 = sigterm (优雅退出)
#    1  = sighup (重载配置)

# 在 top 中按 r 修改 nice 值:
# 1. 按 r
# 2. 输入 pid
# 3. 输入 nice 值 (-20~19, 越小优先级越高)

# 按 u 过滤用户:
# 1. 按 u
# 2. 输入用户名(空字符串显示所有用户)

字段选择

# 按 f 进入字段管理:
# 用上下键选择字段
# 用 d 标记显示/隐藏
# 用 s 选择排序字段

# 常用字段说明:
# pid    - 进程id
# user   - 用户
# pr     - 优先级
# ni     - nice值
# virt   - 虚拟内存
# res    - 常驻内存(实际物理内存)
# shr    - 共享内存
# s      - 状态
# %cpu   - cpu使用率
# %mem   - 内存使用率
# time+  - 累计cpu时间
# command- 命令名

批处理与自动化

#!/bin/bash
# 定期采样 top 数据
# 用法: ./monitor_top.sh [间隔秒] [次数]

interval="${1:-5}"
count="${2:-12}"
outdir="./top_data"
mkdir -p "$outdir"

echo "采样间隔: ${interval}秒"
echo "采样次数: ${count}次"
echo "输出目录: $outdir"

for i in $(seq 1 $count); do
    file="${outdir}/top_$(date +%y%m%d_%h%m%s).txt"
    top -b -n 1 -d "$interval" > "$file"
    echo "[$i/$count] $(date '+%h:%m:%s') → $file"
done

echo "采样完成"

# 分析 cpu 占用最高的进程
echo ""
echo "=== cpu top 5 ==="
for f in "$outdir"/top_*.txt; do
    awk 'nr>7 && !/top/{print $0}' "$f" | head -5
done | sort -k9 -rn | uniq -f12 | head -5
# 快速获取系统摘要
top -b -n 1 | head -20

# 提取 cpu 使用率
top -b -n 2 -d 1 | grep "%cpu" | tail -1

# 提取内存信息
top -b -n 1 | grep "mib mem"

# 提取特定进程信息
top -b -n 1 -p $(pgrep nginx | head -1)

选项速查

选项说明
-d sec刷新间隔(秒)
-n count刷新次数后退出
-p pid监控指定进程
-u user监控指定用户
-b批处理模式
-h显示线程
-i不显示空闲进程

top 是系统管理的第一道"探查器"——发现 cpu 或内存异常时,top 能帮你快速定位问题进程。对于更丰富的交互体验,可以尝试 htop;对于更详细的系统分析,可以尝试 atop

到此这篇关于linux使用top命令实时进程监控的完整指南的文章就介绍到这了,更多相关linux实时进程监控内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com