Linux命令top详解


top命令几乎是每个程序员都会用到的Linux命令。这个命令用来查看Linux系统的综合性能,比如CPU使用情况,内存使用情况。这个命令能帮助我快速定位程序的性能问题。但是之前对于这个命令的使用几乎仅限于查看下哪个进程使用的CPU最高,哪个进程占用的内存最高。对于输出的各个参数的含义也是一知半解,更不用说top的一些高级用法了。

top输出参数的含义

[root@VM-0-15-centos ~]# top
top - 23:02:15 up 45 days, 10:05,  1 user,  load average: 0.15, 0.05, 0.06
Tasks:  73 total,   2 running,  71 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.7 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1882752 total,    90700 free,   262008 used,  1530044 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1434172 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                              
 8353 root      20   0  202272  41900   3128 S  0.3  2.2  68:52.39 YDService                                            
 8476 root      20   0  611528  13472   1960 S  0.3  0.7 104:09.31 barad_agent                                          

第一行表示系统的运行时间和平均负载

top - 23:02:15 up 45 days, 10:05,  1 user,  load average: 0.15, 0.05, 0.06
  • 23:02:15 15:34:12 表示系统的当前时间;
  • up 45 days 表示这个Linux系统已经启动45天
  • 1 user 表示当前有两个用户登陆系统
  • load average: 0.15, 0.05, 0.06 最近1、5和15分钟内的平均负载 现实生产中,不会让负载数值/CPU核数任意接近1的。一般当这个值达到0.8或者0.9时就需要分析分析原因了

第二行表示任务信息

Tasks:  73 total,   2 running,  71 sleeping,   0 stopped,   0 zombie

Tasks — 任务(进程),系统现在共有73个进程,其中处于运行中的有2个,71个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。
按t 可以关闭显示这个任务信息,再按下 t 可以开启这个任务信息

第三行表示CPU状态

%Cpu(s):  0.3 us,  0.7 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
  • us 列显示了用户模式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的 CPU 时间多,但是如果长期大于50%,需要考虑优化用户的程序
  • sy 列显示了内核进程所花费的 CPU 时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足
  • ni 列显示了用户进程空间内改变过优先级的进程占用CPU百分比。
  • id 列显示了 CPU 处在空闲状态的时间百分比。
  • wa 列显示了IO等待所占用的CPU时间的百分比。这里 wa 的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。 这个wa和vmstat中的wa是相同含义。
  • hi 硬件中断占用CPU
  • si 软件中断占用CPU
  • st 丢失时间占用CPU
    在后台开发中需要关注us,sy,id,wa等常用指标

第四、五行内存使用情况#

KiB Mem :  1882752 total,    90700 free,   262008 used,  1530044 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1434172 avail Mem 

第六行以下 进程的状态监控

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                              
 8353 root      20   0  202272  41900   3128 S  0.3  2.2  68:52.39 YDService                                            
 8476 root      20   0  611528  13472   1960 S  0.3  0.7 104:09.31 barad_agent  
  • PID:进程ID,进程的唯一标识符
  • USER:进程所有者的实际用户名。
  • PR:进程的调度优先级。这个字段的一些值是’rt’。这意味这这些进程运行在实时态。
  • NI:进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级
  • VIRT:进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
  • RES:驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
  • SHR:SHR是进程使用的共享内存。共享内存大小,单位kb
  • S:这个是进程的状态。它有以下不同的值:
  • D - 不可中断的睡眠态。
  • R – 运行态
  • S – 睡眠态
  • T – 被跟踪或已停止
  • Z – 僵尸态
  • %CPU:自从上一次更新时到现在任务所使用的CPU时间百分比。
  • %MEM:进程使用的可用物理内存百分比。
  • TIME+:任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。
  • COMMAND:运行进程所使用的命令。进程名称(命令名/命令行)

还有许多在默认情况下不会显示的输出,它们可以显示进程的页错误、有效组和组ID和其他更多的信息。 按下 f
键盘可以调出更多显示选项。按esc键返回top显示页。

top的一些命令行参数

  • -b:批处理模式(batch mode),可输出到管道、文件。默认情况下-b会一直输出
  • -n N:限制输出次数,可以用-nN指定输出次数。 top -n 5输出5次
  • -d N:刷新时间间隔。
  • -p PID:监控指定进程。
  • -Hp PID:监控指定进程和进行内线程信息。(比较常用)

top一些交互键的说明

进入top页面后,我们可以进行一些交互操作。下面是一些交互键的说明:

c 显示完整的命令名。c为Command之意。
d 修改刷新时间。d为Display之意。
u 显示指定用户相关进程。u为User之意。
P 按CPU使用排序。P为Processor(处理器)之意。
M 按内存使用排序。M为Momery之意。
F 排序(进入新的界面,并选择排序的目标字段)。
R 顺序或逆序。
H 显示线程
Z 以多色彩显示top。

摘自:https://www.cnblogs.com/54chensongxia/p/12330592.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值