linux top指令用法

1、简介

Linux top命令用于实时显示进程的动态,是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。

2、常用指令

语法

top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]

参数说明:

d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
s : 安全模式,将交谈式指令取消, 避免潜在的危机
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
n : 更新的次数,完成后将会退出 top
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内

3、top展示界面各参数含义(版本号 procps-ng version 3.3.10)

top - 19:26:14 up 462 days,  1:49,  1 user,  load average: 0.09, 0.05, 0.05
Tasks: 641 total,   1 running, 640 sleeping,   0 stopped,   0 zombie
%Cpu0  :  1.7 us,  0.3 sy,  0.0 ni, 97.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.3 st
%Cpu1  :  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu4  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu5  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 14871080 total,  1030044 free,  2584280 used, 11256756 buff/cache
KiB Swap:  4194300 total,  3406820 free,   787480 used. 11790572 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 7744 nginx     20   0  726384  24340  10656 S   1.0  0.2   0:00.25 php-fpm
 7745 nginx     20   0  712456  20080   8992 S   1.0  0.1   0:00.05 php-fpm
 7763 nginx     20   0  723752  21960  10764 S   0.7  0.1   0:00.21 php-fpm
 6703 nginx     20   0  215204   4856   1448 S   0.3  0.0 207:51.58 nginx
 7663 nginx     20   0  726304  25692  12264 S   0.3  0.2   0:00.26 php-fpm
 7762 nginx     20   0  726048  23692  10820 S   0.3  0.2   0:00.18 php-fpm
 9488 root      20   0  156992   2664   1460 R   0.3  0.0   0:00.13 top
    1 root      20   0  197272  10048   1880 S   0.0  0.1  67:09.74 systemd
    2 root      20   0       0      0      0 S   0.0  0.0   0:02.43 kthreadd

第一行为任务队列信息

top - 19:26:14 当前时间
up 462 days, 1:49, 系统已运行时间
1 user, 当前登录用户数
load average: 0.09, 0.05, 0.05 系统负载,三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

第二行为进程信息

Tasks: 641 total, 进程总数
1 running, 正在运行的进程数
640 sleeping, 休眠的进程数
0 stopped, 停止的进程数
0 zombie 僵尸进程数

第三~六行为cpu信息,使用1打开查看所有cpu,当前服务器为6核

%Cpu0 : 1.7 us, 0.3 sy, 0.0 ni, 97.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.3 st
%Cpu1 : 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu4 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu5 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu0 :
1.7 us, 用户空间占用CPU百分比
0.3 sy, 内核空间占用CPU百分比
0.0 ni, 用户进程空间内改变过优先级的进程占用CPU百分比
97.6 id, 空闲CPU百分比
0.0 wa, 等待输入输出的CPU时间百分比
0.0 hi, 硬件CPU中断占用百分比
0.0 si, 软中断占用百分比
0.3 st 虚拟机占用百分比

第七行为物理内存

KiB Mem : 单位kb
14871080 total, 物理内存总数
1030044 free, 空闲内存空间大小
2584280 used, 已使用物理内存大小
11256756 buff/cache 用作内核缓存的内存量

第八行为置换内存

KiB Swap: 单位kb
4194300 total, 交换区总量
3406820 free, 空闲交换区总量
787480 used. 已使用交换区大小
11790572 avail Mem 缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。

第九行

进程信息区统计信息区域的下方显示了各个进程的详细信息,默认显示
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND(各参数含义见下交互f指令)

交互操作指令

h或? 显示帮助画面 

Help for Interactive Commands - procps-ng version 3.3.10
Window 2:Job: Cumulative mode Off.  System: Delay 3.0 secs; Secure mode Off.

  Z,B,E,e   Global: 'Z' colors; 'B' bold; 'E'/'e' summary/task memory scale
  l,t,m     Toggle Summary: 'l' load avg; 't' task/cpu stats; 'm' memory info
  0,1,2,3,I Toggle: '0' zeros; '1/2/3' cpus or numa node views; 'I' Irix mode
  f,F,X     Fields: 'f'/'F' add/remove/order/sort; 'X' increase fixed-width

  L,&,<,> . Locate: 'L'/'&' find/again; Move sort column: '<'/'>' left/right
  R,H,V,J . Toggle: 'R' Sort; 'H' Threads; 'V' Forest view; 'J' Num justify
  c,i,S,j . Toggle: 'c' Cmd name/line; 'i' Idle; 'S' Time; 'j' Str justify
  x,y     . Toggle highlights: 'x' sort field; 'y' running tasks
  z,b     . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y')
  u,U,o,O . Filter by: 'u'/'U' effective/any user; 'o'/'O' other criteria
  n,#,^O  . Set: 'n'/'#' max tasks displayed; Show: Ctrl+'O' other filter(s)
  C,...   . Toggle scroll coordinates msg for: up,down,left,right,home,end

  k,r       Manipulate tasks: 'k' kill; 'r' renice
  d or s    Set update interval
  W,Y       Write configuration file 'W'; Inspect other output 'Y'
  q         Quit
          ( commands shown with '.' require a visible task display window )
Press 'h' or '?' for help with Windows,
Type 'q' or  to continue
l(L的小写) 切换显示平均负载和启动时间信息。
t 切换显示进程和CPU状态信息。 
m 切换显示内存信息。 
f 显示出所有进程字段信息, 通过操作可以从当前显示中添加或者删除项目
Fields Management for window 1:Def, whose current sort field is %CPU
   Navigate with Up/Dn, Right selects for move then  or Left commits,
   'd' or  toggles display, 's' sets sort.  Use 'q' or  to end!

通过up和down可以选中某个字段,*表示选中展示的列,可以通过空格或d来进行切换显示或隐藏,按选中后按右箭头可以选中该行,再执行up或down可以调整该字段的展示顺序位置,按q或esc键可以退出当前操作。

* PID     = Process Id           
* USER    = Effective User Name
* PR      = Priority
* NI      = Nice Value
* VIRT    = Virtual Image (KiB)
* RES     = Resident Size (KiB)
* SHR     = Shared Memory (KiB)
* S       = Process Status
* %CPU    = CPU Usage
* %MEM    = Memory Usage (RES)
* TIME+   = CPU Time, hundredths
* COMMAND = Command Name/Line
  PPID    = Parent Process pid
  UID     = Effective User Id
  RUID    = Real User Id
  RUSER   = Real User Name
  SUID    = Saved User Id
  SUSER   = Saved User Name
  GID     = Group Id
  GROUP   = Group Name
  PGRP    = Process Group Id
  TTY     = Controlling Tty
  TPGID   = Tty Process Grp Id
  SID     = Session Id
  nTH     = Number of Threads
  P       = Last Used Cpu (SMP)
  TIME    = CPU Time
  SWAP    = Swapped Size (KiB)
  CODE    = Code Size (KiB)
  DATA    = Data+Stack (KiB)
  nMaj    = Major Page Faults
  nMin    = Minor Page Faults
  nDRT    = Dirty Pages Count
  WCHAN   = Sleeping in Function
  Flags   = Task Flags 
  CGROUPS = Control Groups
  SUPGIDS = Supp Groups IDs
  SUPGRPS = Supp Groups Names
  TGID    = Thread Group Id
  ENVIRON = Environment vars
  vMj     = Major Faults delta
  vMn     = Minor Faults delta
  USED    = Res+Swap Size (KiB)
  nsIPC   = IPC namespace Inode
  nsMNT   = MNT namespace Inode
  nsNET   = NET namespace Inode
  nsPID   = PID namespace Inode
  nsUSER  = USER namespace Inode
  nsUTS   = UTS namespace Inode
a 可以控制不同的展示内容,有4种排序模式
Fields Management for window 1:Def, whose current sort field is %CPU
Fields Management for window 2:Job, whose current sort field is PID
Fields Management for window 3:Mem, whose current sort field is %MEM
Fields Management for window 4:Usr, whose current sort field is USER
按a选择排序模式模式之后,按q或esc键退出,即可生效
k 终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。 

top - 20:39:14 up 462 days,  3:02,  1 user,  load average: 0.02, 0.05, 0.05
Tasks: 641 total,   1 running, 640 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.4 us,  0.5 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 14871080 total,   656668 free,  3112808 used, 11101604 buff/cache
KiB Swap:  4194300 total,  3406112 free,   788188 used. 11269180 avail Mem
PID to signal/kill [default pid = 12305]此处输入pid或者直接回车,即可删除默认或指定进程
    TIME+  %CPU %MEM  PPID  PR  NI S    VIRT    RES   UID COMMAND
  0:00.23   0.9  0.2 12130  20   0 S  726236  24252    48 php-fpm: pool php-fpm

s 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。 
i 忽略闲置和僵死进程。
q 退出程序。 
M 根据驻留内存大小进行排序。 
c 切换显示命令名称和完整命令行。
P 根据CPU使用百分比大小进行排序。
r 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。 
o或者O 改变显示项目的顺序。 
T 根据时间/累计时间进行排序。 
S 切换到累计模式。 
W 将当前设置写入~/.toprc文件中。

你可能感兴趣的:(linux top指令用法)