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 <Esc> 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 <Enter> or Left commits,
   'd' or <Space> toggles display, 's' sets sort.  Use 'q' or <Esc> 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 <sched.h>
  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文件中。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容

  • top top - display Linux tasks 第一行是任务队列信息同 uptime 命令的执行结果...
    BlackChen阅读 780评论 0 1
  • linux的性能优化:1、CPU,MEM2、DISK--RAID3、网络相关的外设,网卡 linux系统性能分析:...
    随风化作雨阅读 592评论 0 0
  • 简介top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任...
    靜默阅读 10,820评论 0 0
  • 一、top(Linux命令) 执行top命令: (查看进程15477的详细情况,下文用到) 系统信息(前五行): ...
    java菜阅读 1,146评论 0 1
  • 惊蛰才过几天,亦是万物苏醒之际。今天早上的一轮圆日染红了半边天。七点多钟,太阳就火辣辣地迎面而来。那些个花花草草,...
    飞柔阅读 281评论 0 5