素槿
Published on 2025-08-22 / 1 Visits
0

top命令输出简介

top命令输出

top - 09:14:21 up 26 min,  1 user,  load average: 0.45, 0.50, 0.64
任务: 267 total,   2 running, 264 sleeping,   0 stopped,   1 zombie
%Cpu(s):  4.0 us,  1.9 sy,  0.0 ni, 93.7 id,  0.1 wa,  0.0 hi,  0.3 si,  0.0 st
MiB Mem :  15849.1 total,  10277.2 free,   1976.5 used,   3595.5 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.  13266.3 avail Mem 

 进程号 USER      PR  NI    VIRT    RES    SHR    %CPU  %MEM     TIME+ COMMAND                     
   2479 ngx       20   0 5246028 317628 123120 S   5.0   2.0   0:55.14 gnome-shell                 
   2318 ngx       20   0  912536 123160  89152 S   4.7   0.8   0:29.59 Xorg

第一行

top - 09:14:21 up 26 min,  1 user,  load average: 0.45, 0.50, 0.64
  • top:当前时间
  • up:机器运行了多少时间
  • users:当前有多少用户
  • load average:分别是过去1分钟,5分钟,15分钟的负载

一个CPU在一个时间片里面只能运行一个进程,CPU核数的多少直接影响到这台机器在同时间能运行的进程数。所以一般来说Load Average的数值别超过这台机器的总核数,就基本没啥问题。

第二行

任务: 267 total,   2 running, 264 sleeping,   0 stopped,   1 zombie
  • Tasks:当前有多少进程
  • running:正在运行的进程
  • sleeping:正在休眠的进程
  • stopped:停止的进程
  • zombie:僵尸进程

running越多,服务器自然压力越大。

第三行

%Cpu(s):  4.0 us,  1.9 sy,  0.0 ni, 93.7 id,  0.1 wa,  0.0 hi,  0.3 si,  0.0 st
  • us: 用户进程占用的CPU时间百分比
  • sy: 系统进程占用的CPU时间百分比
  • ni: 运行niced用户进程的时间百分比
  • id: 空闲CPU时间百分比
  • wa: 等待输入输出的CPU时间百分比
  • hi: 硬件的中断请求时间百分比
  • si: 软件的中断请求时间百分比
  • st: hypervisor从当前vm偷取的CPU时间百分比

第四行

MiB Mem :  15849.1 total,  10277.2 free,   1976.5 used,   3595.5 buff/cache
  • total:内存总量
  • free:空闲内存
  • used:使用的
  • buffer/cache:写缓存/读缓存

第四第五行分别是内存信息和swap信息。所有程序的运行都是在内存中进行的,所以内存的性能对与服务器来说非常重要。不过当内存的free变少的时候,其实我们并不需要太紧张。真正需要看的是Swap中的used信息。Swap分区是由硬盘提供的交换区,当物理内存不够用的时候,操作系统才会把暂时不用的数据放到Swap中。所以当这个数值变高的时候,说明内存是真的不够用了。

PID USER      PR  NI    VIRT    RES    SHR    %CPU  %MEM     TIME+ COMMAND

PR - 优先级

RES - 驻留内存大小(KiB)

NI - nice value

SHR - 共享内存大小(KiB)

S - 进程状态

  • D 不间断睡眠
  • I 空闲
  • R 运行
  • S 睡眠
  • T 由控制信息引起的停止
  • t 因调试引起的停止
  • Z 僵尸进程

VIRT - 进程使用的全部的虚拟内存大小。