linux top命令

top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视。

top - 06:25:40 up  2:04,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 217 total,   1 running, 216 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.9 us,  3.4 sy,  0.0 ni,90.4 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st
MiB Mem :   2800.0 total,   1821.2 free,    457.3 used,    521.6 buff/cache
MiB Swap:   2139.0 total,   2139.0 free,      0.0 used.   2161.7 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
      1 root      20   0  246124  14820   9240 S   0.0   0.5   0:03.79 systemd
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.02 kthreadd
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-xfs-log/nvme0n1p3
      9 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq
     10 root      20   0       0      0      0 S   0.0   0.0   0:00.03 ksoftirqd/0
     11 root      20   0       0      0      0 I   0.0   0.0   0:03.58 rcu_sched

一、前五行是当前系统情况整体的统计信息。

第一行 : 

top - 06:25:40 up  2:04,  1 user,  load average: 0.00, 0.00, 0.00

 06:25:40--系统时间    up 2:04--系统已经运行了2小时4分钟    1 user-- 当前有1个用户登陆系统 

load average :0.00 0.00 0.00 三个数分别是1分钟、5分钟、15分钟的负载情况。 数字含义可参考Linux系统平均负载3个数字的含义 - Slyar Home

 

第二行:

Tasks: 217 total,   1 running, 216 sleeping,   0 stopped,   0 zombie

任务进程状态 运行中的1个、216个在休眠、stoped状态的有0个,zombie状态(僵尸)的有0个。

 

第三行:  

%Cpu(s):  5.9 us,  3.4 sy,  0.0 ni,90.4 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st

5.9%us — 用户空间占用CPU的百分比。

3.4% sy — 内核空间占用CPU的百分比。

0.0% ni — 改变过优先级的进程占用CPU的百分比

90.4% id — 空闲CPU百分比

0.0% wa — IO等待占用CPU的百分比

0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比

0.2% si — 软中断(Software Interrupts)占用CPU的百分比

0.0% st — steal time  Steal time is the percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor.是用来衡量被Hypervisor偷去给其它虚拟机使用的CPU时间所占的比例,这个值越高,说明这台物理服务器的资源竞争越激烈。 一般的参考标准-如果Steal Time 超过了10%并且持续了20分钟,那么虚拟机就可能性能下降了。

 

第四行:  

MiB Mem :   2800.0 total,   1821.2 free,    457.3 used,    521.6 buff/cache

2800 total -- 内存总大小为2800M  1821.2  free --空闲的内存大小  457.3 userd -- 使用中的内存   521.6 buff/cache 缓存内存量

 

第五行:

MiB Swap:   2139.0 total,   2139.0 free,      0.0 used.   2161.7 avail Mem

2139.0 total --交换分区总量,   2139.0 free--交换分区空闲量,      0.0 used -- 交换分区使用量.   2161.7 avail Mem --交换分区可用量

 

二、进程信息

第七行以下:

PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
  1 root      20   0  246124  14820   9240 S   0.0   0.5   0:03.79 systemd

各进程的状态监控

 PID--进程ID USER--进程所有者  PR--进程优先级  NI--nice值(负值表示高优先级 正值表示低优先级)   

VIRT--进程使用的虚拟内存总量,单位Kb(VIRT=SWAP+RES)    RES--进程使用的真实内存   SHR--共享内存大小  S--进程状态  %CPU  %MEM     TIME+ COMMAND--进程使用CPU时间(1/100s)+进程名称

 

三、top命令使用

3.1 更改显示内容

top命令之后按 f 键编辑显示内容:

Fields Management for window 1:Def, whose current sort field is %CPU
   Navigate with Up/Dn, Right selects for move then <Enter> or Left commits,
   'd' or <Space> toggles display, 's' sets sort.  Use 'q' or <Esc> to end!

* PID     = Process Id             DATA    = Data+Stack (KiB)
* USER    = Effective User Name    nMaj    = Major Page Faults
* PR      = Priority               nMin    = Minor Page Faults
* NI      = Nice Value             nDRT    = Dirty Pages Count
* VIRT    = Virtual Image (KiB)    WCHAN   = Sleeping in Function
* RES     = Resident Size (KiB)    Flags   = Task Flags <sched.h>
* SHR     = Shared Memory (KiB)    CGROUPS = Control Groups
* S       = Process Status         SUPGIDS = Supp Groups IDs
* %CPU    = CPU Usage              SUPGRPS = Supp Groups Names
* %MEM    = Memory Usage (RES)     TGID    = Thread Group Id
* TIME+   = CPU Time, hundredths   OOMa    = OOMEM Adjustment
* COMMAND = Command Name/Line      OOMs    = OOMEM Score current
  PPID    = Parent Process pid     ENVIRON = Environment vars
  UID     = Effective User Id      vMj     = Major Faults delta
  RUID    = Real User Id           vMn     = Minor Faults delta
  RUSER   = Real User Name         USED    = Res+Swap Size (KiB)
  SUID    = Saved User Id          nsIPC   = IPC namespace Inode
  SUSER   = Saved User Name        nsMNT   = MNT namespace Inode
  GID     = Group Id               nsNET   = NET namespace Inode
  GROUP   = Group Name             nsPID   = PID namespace Inode
  PGRP    = Process Group Id       nsUSER  = USER namespace Inode
  TTY     = Controlling Tty        nsUTS   = UTS namespace Inode
  TPGID   = Tty Process Grp Id     LXC     = LXC container name
  SID     = Session Id             RSan    = RES Anonymous (KiB)
  nTH     = Number of Threads      RSfd    = RES File-based (KiB)
  P       = Last Used Cpu (SMP)    RSlk    = RES Locked (KiB)
  TIME    = CPU Time               RSsh    = RES Shared (KiB)
  SWAP    = Swapped Size (KiB)     CGNAME  = Control Group name
  CODE    = Code Size (KiB)        NU      = Last Used NUMA node

根据上图可知:
①当前是按照%CPU这一列来排序的
②可以通过上、下键来选择
③按右键可以选择整个列,然后按上、下键来移动整个列的显示位置,前移或后移,按回车确定
④按空格键来显示或隐藏该列,带*的是显示,不带*的是不显示
⑤按s键可以将当前列设置为排序列
⑥按q键退出

3.2 top常用命令

格式:

top [option]

常用选项:

选项        功能
-d      指定每两次屏幕信息刷新之间的时间间隔,如希望每秒刷新一次,则使用:top -d 1
-p      通过指定PID来仅仅监控某个进程的状态
-S      指定累计模式
-s      使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险
-i       使top不显示任何闲置或者僵死的进程

3.3 top交互命令

top命令之后按数字"1"键,可监控每个逻辑CPU的情况。

top - 09:43:17 up  5:21,  1 user,  load average: 0.00, 0.00, 0.00
Tasks: 216 total,   1 running, 215 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  0.0 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.3 hi,  0.0 si,  0.0 st
%Cpu3  :  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   2800.0 total,   1817.6 free,    460.1 used,    522.3 buff/cache
MiB Swap:   2139.0 total,   2139.0 free,      0.0 used.   2158.6 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
     11 root      20   0       0      0      0 I   0.3   0.0   0:07.99 rcu_sched
      1 root      20   0  246124  14820   9240 S   0.0   0.5   0:03.85 systemd

top命令之后按"u"键后,输入用户名,可以查看相应用户的进程

top - 20:41:11 up  2:47,  2 users,  load average: 0.00, 0.00, 0.00
Tasks: 210 total,   1 running, 209 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  0.1 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   2800.0 total,   1846.4 free,    432.3 used,    521.3 buff/cache
MiB Swap:   2139.0 total,   2139.0 free,      0.0 used.   2187.2 avail Mem
Which user (blank for all) root
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
     11 root      20   0       0      0      0 I   0.5   0.0   0:02.22 rcu_sched
      1 root      20   0  180480  14800   9252 S   0.0   0.5   0:01.62 systemd
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-xfs-log/nvme0n1p3
      9 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 mm_percpu_wq
     10 root      20   0       0      0      0 S   0.0   0.0   0:00.00 ksoftirqd/0
     12 root      rt   0       0      0      0 S   0.0   0.0   0:00.01 migration/0
     13 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 watchdog/0
     14 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/0
     15 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/1
     16 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 watchdog/1
     17 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 migration/1
     18 root      20   0       0      0      0 S   0.0   0.0   0:00.27 ksoftirqd/1
     20 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/1:0H-kblockd
     21 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/2
     22 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 watchdog/2
     23 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 migration/2
     24 root      20   0       0      0      0 S   0.0   0.0   0:00.00 ksoftirqd/2

按"E"键,切换内存显示大小单位 KB-->MB-->GB-->TB-->EB

按"N"键,按PID由高到低排列

按"m"键,显示内存信息

top - 20:47:32 up  2:53,  2 users,  load average: 0.00, 0.01, 0.00
Tasks: 208 total,   1 running, 207 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.2 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem : 21.9/2800.0   [|||||||||||||||||||||                                                                               ]
MiB Swap:  0.0/2139.0   [                                                                                                    ]

按"M"键,根据内存资源使用大小来进行排序

posted @ 2022-05-25 00:46  zed99  阅读(200)  评论(0编辑  收藏  举报