详细介绍top 命令的各项参数及输出信息

发布于:2024-12-20 ⋅ 阅读:(9) ⋅ 点赞:(0)

0、背景

在 Linux 系统中,top 命令是一个非常强大的实时系统监控工具,用于查看系统当前的资源使用情况,包括 CPU、内存、磁盘等的使用状态。无论是在服务器管理还是日常的系统维护中,top 命令都为管理员提供了关键的性能数据。

1、基础用法

  • -d 或 --delay, 此参数指定 top 更新数据的延迟时间,单位是秒。例如,top -d 5 会每隔 5 秒刷新一次输出。
  • -n 或 --iterations, 设置 top 输出的更新次数。例如,top -n 10 会显示 10 次更新后自动退出。
  • -b 或 --batch, 批处理模式。当你希望将 top 输出结果保存到文件中时,使用此模式,可以将 top 输出结果发送到文件,而不在终端中显示。
  • -u 或 --user, 此参数让 top 只显示指定用户的进程信息。例如,top -u username 会显示 username 用户的进程。
  • -p 或 --pid, 此参数让你查看特定 PID(进程 ID)的进程。例如,top -p 1234 只显示 PID 为 1234 的进程。
  • -c 或 --command, 显示命令行而不仅仅是程序名称。在一些进程使用相同程序时,这个选项帮助你了解具体的命令行。
  • -H,显示线程级别的信息

2、输出信息详解

运行top命令时,通常会输出以下信息:

top - 15:04:20 up 1 day,  2:22,  2 users,  load average: 0.02, 0.03, 0.01
Tasks: 180 total,   1 running, 179 sleeping,   0 stopped,   0 zombie
%Cpu(s):  3.5 us,  1.2 sy,  0.0 ni, 94.9 id,  0.1 wa,  0.1 hi,  0.2 si,  0.0 st
MiB Mem :   2048.1 total,    230.1 free,   1274.7 used,    543.3 buff/cache
MiB Swap:   1024.0 total,    800.0 free,    224.0 used.    400.0 avail Mem

2.1 系统状态

top - 15:04:20 up 1 day,  2:22,  2 users,  load average: 0.02, 0.03, 0.01
  • 15:04:20:当前系统时间。
  • up 1 day, 2:22:系统已运行时间为 1 天 2 小时 22 分钟。
  • 2 users:当前登录的用户数量。
  • load average:系统的负载情况,通常显示 1 分钟、5 分钟、15 分钟的平均负载值。值越低,系统负载越小,需要注意的是这里的负载并不单单是CPU的负载,而是整机的负载

2.2 任务状态

Tasks: 180 total,   1 running, 179 sleeping,   0 stopped,   0 zombie
  • 180 total:系统中总共运行的进程数。
  • 1 running:当前正在运行的进程数。
  • 179 sleeping:处于休眠状态的进程数。
  • 0 stopped:已停止的进程数。
  • 0 zombie:僵尸进程的数量。
    注意没有加-H时显示的是进程信息,加上-H显示的是线程资源

2.3 CPU使用情况

%Cpu(s):  3.5 us,  1.2 sy,  0.0 ni, 94.9 id,  0.1 wa,  0.1 hi,  0.2 si,  0.0 st
  • us (user):用户空间占用 CPU 的百分比(除去内核部分)。
  • sy (system):内核空间占用 CPU 的百分比。
  • ni (nice):改变过优先级的进程占用 CPU 的百分比。
  • id (idle):CPU 空闲百分比。
  • wa (iowait):等待输入/输出操作的进程占用 CPU 的百分比。
  • hi (hardware interrupt):硬件中断占用 CPU 的百分比。
  • si (software interrupt):软件中断占用 CPU 的百分比。
  • st (steal):虚拟化环境中,其他虚拟机占用的 CPU 资源百分比。

2.4 内存使用情况

MiB Mem :   2048.1 total,    230.1 free,   1274.7 used,    543.3 buff/cache
  • total:系统总内存大小。
  • free:剩余的空闲内存。
  • used:已使用的内存。
  • buff/cache:缓存和缓冲区占用的内存

2.5 交换区使用情况

MiB Swap:   1024.0 total,    800.0 free,    224.0 used.    400.0 avail Mem
  • total:交换区的总大小。
  • free:剩余的交换区空间。
  • used:已使用的交换区空间。
  • avail Mem:可用于分配给进程的可用内存。

2.6 进程信息

  • PID:进程 ID。
  • USER:进程所属用户。
  • PR:进程的优先级。
  • NI:进程的优先级调整值。
  • VIRT:进程占用的虚拟内存总量。
  • RES:进程占用的物理内存大小。
  • SHR:进程占用的共享内存大小。
  • S:进程的状态,常见的有:
    S:睡眠状态(Sleep)。
    R:运行状态(Running)。
    Z:僵尸状态(Zombie)。
    I:空闲状态
  • %CPU:进程使用的 CPU 百分比。
  • %MEM:进程使用的内存百分比。
  • TIME+:进程的累计 CPU 时间。
  • COMMAND:启动进程的命令。

3、top命令的排序和过滤功能

在 top 界面中,你可以使用以下快捷键来排序和过滤:

  • M:按内存使用量排序
  • P:按 CPU 使用量排序
  • T:按时间排序
  • k:杀死进程, 输入 PID 后,可以结束进程
  • r:改变进程优先级(修改 nice 值)s
    这几个命令非常有用,需要注意的是上面的命令是区分大小写的。

4、总结

top 命令是 Linux 系统中用于监控资源使用情况的重要工具。通过各种参数的灵活组合,可以实时查看 CPU、内存、交换区等资源的使用情况,并对进程进行管理。熟练掌握 top 命令和它的各项输出信息,将有助于程序员高效地管理和维护 Linux 系统的性能。