top

top 功能说明:实时显示系统中各个进程的资源占用状况。

参数选项:
-a  将进程按照使用内存排序(CentOS7及以上没有此参数)。
-b  以批处理的模式显示进程信息,输出结果可以传递给其他程序或写入到文件中。
在这种模式下,top命令不会接受任何输入,一直运行直到到达-n选项设置的阀值,或者按Ctrl+C等组合键终止程序。
-c  显示进程的整个命令路径,而不是只显示命令名称。
-d  指定每两次屏幕信息刷新之间的时间。
-H  指定这个可以显示每个线程的情况,否则就是进程的总的状态。
-i  不显示闲置或者僵死的进程信息。
-n  top输出信息更新的次数,完成后将退出top命令。
-p  显示指定的进程信息。

交互式命令:
h或?  显示帮助信息。
Z     全局颜色设置。
B     全局字体加粗设置。
l     切换是否显示平均负载和启动时间信息。
t     切换是否显示进程和CPU状态信息。
m     切换是否显示内存信息。
1     数字1,用于多核CPU监控,可监控每个逻辑CPU的状况。
I     Irix/Solaris模式。
f     从当前显示列表中添加或删除项目。按"a~z"键即可显示或隐藏对应的列,最后按回车键确认。
o     改变top输出信息中显示项目的顺序。
按小写的"a-z"键可以将相应的列向右移动,而按大写的"A~Z"键可以将相应的列向左移动,最后按回车键确认。
F或O  选择排序的列。
<,>   移动选择排序的列,"<"选择左邻一列排序,">"选择右邻一列排序。
R     切换正常/反转排序。
H     切换是否显示线程信息。
c     切换是否显示完整命令行和命令名称信息。
i     切换是否显示闲置进程和僵死进程。
S     切换到累计模式。
x     以高亮的形式排序对应的列,需要结合b/z使用。
y     高亮运行的进程,需要结合b/z使用。
z     打开/关闭颜色。
b     打开/关闭加粗。
u     显示指定用户相关的进程信息。
n或#  设置显示进程的最大行数。
k     终止一个进程,系统将提示用户输入一个需要终止进程的PID。
r     重新设置一个进程的优先级,系统提示用户输入需要改变的进程PID,以及需要设置的进程优先级值。
输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
d或s  改变top输出信息两次刷新之间的时间,系统将提示输入新的时间,单位是s。
如果是小数,则换算成ms;如果输入0,那么系统将会不断刷新,默认刷新时间是3s。
需要注意的是,如果设置太小的时间,则可能会引起系统不断刷新,无法看清输出显示情况,而且系统负载也会加大。
W     将当前top设置写入 "~/.toprc" 文件中。
q     退出top显示。


范例:显示进程信息
[root@testdb62 ~]# top
top - 14:24:07 up 69 days, 22:11,  2 users,  load average: 0.01, 0.02, 0.05
Tasks: 120 total,   1 running, 119 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  1.6 sy,  0.0 ni, 98.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8173976 total,  5385572 free,   413580 used,  2374824 buff/cache
KiB Swap:  8257532 total,  8257532 free,        0 used.  7396152 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                     
    1 root      20   0  191128   3384   1896 S   0.0  0.0  24:29.88 systemd                                     
    2 root      20   0       0      0      0 S   0.0  0.0   0:02.68 kthreadd                                    
    4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                
    6 root      20   0       0      0      0 S   0.0  0.0   0:46.02 ksoftirqd/0                                 
    7 root      rt   0       0      0      0 S   0.0  0.0   0:23.09 migration/0                                 
    8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                                      
    9 root      20   0       0      0      0 S   0.0  0.0  16:31.76 rcu_sched                                   
   10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-drain 

说明:
第一行,任务队列信息,同uptime命令的执行结果。
14:24:07  当前系统时间。
up 69 days, 22:11  系统已经运行的时间是69天22小时11分。
2 users  当前有2个用户登录系统。
load average: 0.01, 0.02, 0.05   后面三个数分别是1分钟、5分钟、15分钟的平均负载情况

第二行,Tasks为任务(进程),从上面的信息可以看出,系统现在共有120个进程,
其中处于运行状态的有1个,119个在休眠(sleep),stoped状态0个,zombie状态(僵死)的有0个。

第三行,CPU状态信息
0.0 us  用户空间占用CPU的百分比。
1.6 sy  内核空间占用CPU的百分比。 
0.0 ni  改变过优先级的进程占用CPU的百分比。  
98.4 id  空闲CPU的百分比。  
0.0 wa  I/O等待占用CPU的百分比。  
0.0 hi  硬中断(Hardware IRQ)占用CPU的百分比。 
0.0 si  软中断(Software Interrupts)占用CPU的百分比。  
0.0 st  虚拟机占用CPU的百分比。 

第四行,内存状态
8173976 total  物理内存总量。
5385572 free   空闲内存总量。
413580 used    使用中的内存总量。
2374824 buff/cache  缓冲的内存量。

第五行,swap交换分区信息
8257532 total  交换区总量。
8257532 free   空闲交换区总量。
0 used    使用的交换区总量。
7396152 avail Mem    可用的内存量。

计算真正可用的内存数为:free + buff/cache
对内存进行监控是,要关注wap交换分区的used,如果这个数值还在不断地变化,
则说明内核正在不断进行内存和swap的数据交换,这表示内存真的不够用了或者程序运行有内存溢出问题。

第七行,各进程(任务)的状态监控。
PID  进程ID
USER   进程所有者。   
PR   进程优先级。
NI    nice值,负值表示高优先级,正值表示低优先级。
VIRT   进程使用的虚拟内存总量,单位为kb。
RES    进程使用、未被换出的物理内存大小,单位为kb。
SHR   共享内存大小,单位为kb。
S  进程状态。D=不可中断的睡眠状态  R=运行   S=睡眠  T=跟踪/停止  Z=僵尸进程。
%CPU   上次更新到现在CPU时间占用百分比。
%MEM   进程使用的物理内存百分比。
TIME+   进程使用CPU时间总计,单位1/100秒。
COMMAND   进程名称(命令名/命令行)。



范例:显示多核不同核CPU的信息
在top基本视图中,按数字1,可监控每个逻辑CPU的状况,再按数字1,返回到基本视图界面。
[root@testdb62 ~]# top
top - 15:41:53 up 69 days, 23:29,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 121 total,   1 running, 120 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.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
KiB Mem :  8173976 total,  5384812 free,   414408 used,  2374756 buff/cache
KiB Swap:  8257532 total,  8257532 free,        0 used.  7395324 avail Mem 


范例:将进程按照使用内存排序(CentOS7及以上没有此参数)
[root@testdb62 ~]# top -a
top - 15:55:54 up 74 days, 22:31,  1 user,  load average: 0.06, 0.10, 0.08
Tasks: 214 total,   1 running, 213 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.2%sy,  0.0%ni, 99.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  10362812k total,  7115712k used,  3247100k free,   146320k buffers
Swap: 20922316k total,    29836k used, 20892480k free,  6059892k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1898 mysql     20   0 4868m 377m 5876 S  0.7  3.7  11332:19 mysqld
 2542 root      20   0  387m  79m  548 S  0.3  0.8 158:49.11 memcached
 2022 root      20   0  697m  22m 3652 S  0.0  0.2  96:19.19 frpc
13730 zabbix    20   0  219m 5660 1092 S  0.0  0.1 119:12.13 zabbix_proxy
 1151 root      20   0  249m 5072  916 S  0.0  0.0   3:01.19 rsyslogd
15232 postfix   20   0 81252 4124 3000 S  0.0  0.0   0:00.01 local
15230 postfix   20   0 81096 3536 2632 S  0.0  0.0   0:00.01 cleanup
15233 postfix   20   0 80988 3464 2572 S  0.0  0.0   0:00.00 bounce
 6062 postfix   20   0 80952 3420 2540 S  0.0  0.0   0:00.04 pickup



原文地址:https://www.cnblogs.com/l10n/p/14173592.html