Linux 的top 命令详解

top 命令是一个系统监测工具,它显示了当前系统中最消耗资源的进程,帮助系统管理员快速了解系统的运行情况和性能瓶颈。它在 Linux 操作系统中是一个非常常用的命令。

[root@linuxtestb ~]# top
top - 10:07:16 up 117 days, 16:41,  1 user,  load average: 3.67, 4.06, 5.30
Tasks: 436 total,   4 running, 432 sleeping,   0 stopped,   0 zombie
Cpu(s)  : 35.4 us, 11.2 sy,  0.0 ni, 52.6 id,  0.0 wa,  0.0 hi,  0.7 si,  0.0 st
KiB Mem : 65957724 total,  6873140 free, 50758152 used,  8326432 buff/cache
KiB Swap: 16777212 total,  7716736 free,  9060476 used. 10570308 avail Mem 
   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                       21113 root      20   0 5821540   1.3g   5148 S   9.4  2.1  11898:28 java                                                       
                                                                      
 80170 root      20   0 2349008 674156   4788 S   0.0  1.0   6577:50 mysqld                
  • 第一行 top

    • 10:07:16 :系统当前时间
    • 117 days, 16:41 :系统的运行时间,表示系统自上次启动以来运行的时间
    • 1 user :当前登录系统的用户数
    • load average: 3.67, 4.06, 5.30 :系统负载的度量,表示当前正在运行或等待资源的进程数的平均值。负载平均值以三个数字表示,分别代表过去 1、5、15 分钟的平均值。
  • 第二行 TASK

    • Tasks: 436 total :系统上正在运行的进程总数。
    • 4 running : 正在运行进程数。
    • 432 sleeping : 睡眠进程数。
    • 0 stopped :停止进程数。
    • 0 zombie :僵尸状态进程数。
  • 第三行 Cpu

    • 35.4 us :表示用户空间进程使用 的 CPU 时间。
    • 11.2 sy :表示内核空间进程使用 的 CPU 时间。
    • 0.0 ni :表示用户空间进程使用了被明确设置了 nice 值的 CPU 时间,这是控制进程 CPU 优先级的机制。
    • 52.6 id : 表示 CPU 空闲时间占用了 52.6% 的 CPU 时间。
    • 0.0 wa : 表示因等待 IO 而占用了 CPU 时间,即等待输入输出(I/O wait)时间。
    • 0.0 hi :表示处理硬中断占用了 CPU 时间。
    • 0.7 si : 表示处理软中断占用了 CPU 时间。
    • 0.0 st: 表示被虚拟机使用的 CPU 时间,例如在虚拟机环境中运行的其他操作系统。
  • 第四行 KiB Mem

    • 65957724 KiB total : 表示系统总内存。
    • 6873140 KiB free : 表示空闲内存。
    • 50758152 KiB used : 表示已使用内存。
    • 8326432 KiB buff/cache : 表示缓存和缓冲区占用内存。
  • 第五行 KiB Swap

    • 16777212 KiB total : 表示系统总交换空间。
    • 7716736 KiB free : 表示空闲交换空间。
    • 9060476 KiB used : 表示已使用交换空间。
    • 10570308 avail Mem : 表示可用内存,也就是实际可用的内存加上交换空间。
  • 第六行

    • "PID" 表示进程的 ID,是系统中唯一的标识符。
    • "USER" 表示进程的所有者,是指运行该进程的用户的名称。
    • "PR" 表示进程的优先级。
    • "NI" 表示进程的 nice 值,该值决定了进程的资源分配优先级。
    • "VIRT" 表示进程占用的虚拟内存,单位为 KB。
    • "RES" 表示进程占用的实际物理内存,单位为 KB。
    • "SHR" 表示进程共享内存的大小,单位为 KB。
    • "S" 表示进程的状态,其中:"R" 表示进程正在运行,"S" 表示进程处于睡眠状态,"T" 表示进程已停止,"Z" 表示进程处于僵尸状态。
    • "%CPU" 表示进程使用的 CPU 时间的百分比。
    • "%MEM" 表示进程占用内存的百分比。
    • "TIME+" 表示进程运行的总时间。
    • "COMMAND" 表示进程的名称。

常用参数

top" 命令支持一些参数,下面是一些常用的参数:

  • -d:设置刷新频率。
  • -n:设置刷新的次数。
  • -p:显示指定进程的信息。
  • -u:显示指定用户的进程信息。
  • -o:指定排序字段。
  • -h:显示帮助信息。

使用样例

  1. 显示每 2 秒刷新一次且仅刷新 10 次的进程信息:
top -d 2 -n 10
  1. 显示指定用户 john 的进程信息:
top -u john
  1. 显示指定进程 ID 为 123 的信息:
top -p 123
  1. 以内存使用率排序:
top -o %MEM

使用场景

  1. 监控系统性能:通过查看系统的 CPU、内存、磁盘等使用情况,了解系统的性能。
  2. 观察系统的进程:查看系统的进程的 CPU、内存、状态等情况,以了解系统的资源使用情况。
  3. 解决系统问题:通过监控系统的 CPU、内存、磁盘等使用情况,帮助诊断系统问题。
  4. 查找系统瓶颈:通过分析系统的 CPU、内存、磁盘等使用情况,帮助找出系统瓶颈。

你可能感兴趣的:(linux)