Linux系统上的top命令的输出结果

12 min read
top - 20:48:53 up 5 days, 22:18,  2 users,  load average: 3.91, 2.18, 1.61
Tasks: 373 total,   1 running, 372 sleeping,   0 stopped,   0 zombie
%Cpu(s): 43.2 us,  5.4 sy,  0.0 ni, 51.1 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
KiB Mem :  4044772 total,   219012 free,  2189260 used,  1636500 buff/cache
KiB Swap:  4194300 total,  3617788 free,   576512 used.  1512536 avail Mem

Linux系统上的top命令的输出结果:

  • 20:31:36 表示当前系统时间。
  • up 5 days, 22:01 表示系统已经连续运行了5天22小时1分钟。
  • 2 users 表示有两个用户登录到系统上。
  • load average: 2.11, 1.35, 1.11 表示系统在过去1分钟、5分钟和15分钟内的平均负载。这里的平均负载是指正在运行和等待运行的进程数。在这个例子中,系统的负载平均值为2.11、1.35和1.11,这意味着系统在过去的15分钟内有相对较高的负载。

接下来是任务信息:

  • Tasks: 377 total 表示系统当前运行着377个任务。
  • 6 running 表示其中有6个任务正在运行。
  • 370 sleeping 表示有370个任务处于休眠状态(即等待被唤醒执行)。
  • 0 stopped 表示没有任务被暂停。
  • 1 zombie 表示有一个僵尸进程。

最后是CPU和内存使用情况:

  • %Cpu(s): 54.0 us, 4.8 sy, 0.0 ni, 41.1 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
    

    表示CPU使用情况,其中:

    • us 表示用户空间占用CPU时间的百分比。
    • sy 表示内核空间占用CPU时间的百分比。
    • ni 表示用户进程以优先级较低的方式运行的时间。
    • id 表示CPU空闲的时间。
    • wa 表示CPU等待I/O操作完成的时间。
    • hi 表示CPU处理硬件中断的时间。
    • si 表示CPU处理软件中断的时间。
    • st 表示被虚拟机“偷走”的CPU时间(例如,在虚拟机上运行时)。
  • KiB Mem: 4044772 total, 189120 free, 2377960 used, 1477692 buff/cache
    

    表示内存使用情况,其中:

    • total 表示系统内存的总量。
    • free 表示未被使用的内存量。
    • used 表示正在使用的内存量。
    • buff/cache 表示缓存和缓冲区占用的内存量。这些是系统使用的额外内存,但是可以释放给应用程序使用。

平均负载

平均负载是一个衡量系统负载的指标,它代表了在特定时间段内正在运行和等待运行的进程数。在Unix和Linux系统中,平均负载由三个数字表示,它们分别是在过去1分钟、5分钟和15分钟内的平均负载。

在一个单核CPU的系统中,如果平均负载为1,那么这意味着CPU在这段时间内的利用率达到了100%。在一个多核CPU的系统中,平均负载的最大值应该是CPU核心数的数量。

通常情况下,如果平均负载超过了CPU核心数的数量,这可能是系统正在受到高负载的影响,进程可能会变得缓慢或响应时间变长。因此,通过监控平均负载可以快速诊断系统性能问题并做出相应的优化。常见的优化措施包括增加CPU、增加内存或优化应用程序性能等。