top 命令

截取部分top输出内容
top - 17:49:41 up 59 days, 15:53,  2 users,  load average: 0.07, 0.05, 0.05
Tasks: 112 total,   1 running, 109 sleeping,   0 stopped,   2 zombie
%Cpu(s):  1.5 us,  0.7 sy,  0.0 ni, 97.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1881840 total,    80768 free,   873712 used,   927360 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   822596 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 3493 root      20   0  680300  14288   2076 S   0.7  0.8 250:01.91 barad_agent
 6493 root      20   0 1033692  36720  18684 S   0.7  2.0  23:03.33 YDService
 6816 root      20   0 1157576   6984   3168 S   0.3  0.4   0:29.40 sh
    1 root      20   0   51936   3904   2428 S   0.0  0.2  14:00.27 systemd
    2 root      20   0       0      0      0 S   0.0  0.0   0:02.17 kthreadd

系统资源信息

前5行为系统资源信息,逐行进行解释。

1、第一行
  • 17:49:41:系统当前时间
  • up 59 days, 15:53:系统运行时间,本次已运行59天15时53分
  • 2 users:当前登陆用户
  • load average: 0.07, 0.05, 0.05:过去1、5、15分钟的系统平均负荷

如何根据load average判断CPU的负载程度?

  1. 查看CPU的Processor数量:cat /proc/cpuinfo |grep “cpu core”|wc -l
  2. 如果负载值超过核心处理器数量,一般认为是高负载。如:核心处理器数量为4,load average的值在4的左右浮动,就是高负载

如果是Mac系统,可以通过:sysctl -n machdep.cpu.core_count 查看CPU核心数(物理核)进行判断。

2、第二行(进程相关)
  • Tasks: 112 total:总进程数
  • 1 running:运行中进程数
  • 109 sleeping:休眠进程数
  • 0 stopped:正在停止的进程数
  • 2 zombie:僵尸进程。不为0,需要进行排查
如何排查僵尸进程?

top命令查看是否存有僵尸进程

Tasks: 111 total,   1 running, 109 sleeping,   0 stopped,   1 zombie
%Cpu(s):  1.8 us,  0.8 sy,  0.0 ni, 97.2 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1881840 total,   101172 free,   872336 used,   908332 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   823984 avail Mem

ps & grep命令配合根据进程状态查询出僵尸进程的信息(kill无效时,尝试kill父进程)

[root@VM-24-5-centos ~]# ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'
Z     1968 32070 [python] <defunct>
[root@VM-24-5-centos ~]# kill -9 32070
[root@VM-24-5-centos ~]# ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'
Z     1968 32070 [python] <defunct>
[root@VM-24-5-centos ~]# kill -9 1968
[root@VM-24-5-centos ~]# ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'
[root@VM-24-5-centos ~]#

top命令再次检测是否kill成功

top - 18:21:30 up 59 days, 16:25,  2 users,  load average: 0.06, 0.07, 0.06
Tasks: 110 total,   1 running, 109 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.5 us,  0.5 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1881840 total,   132628 free,   840740 used,   908472 buff/cache
KiB Swap:        0 total,        0 free,        0 used.   855580 avail Mem
3、第三行(CPU占用率相关,如果有多CPU会展示多行,交互式命令1可以查看)
  • 1.5 us:用户空间进程所占CPU百分比
  • 0.7 sy:内核空间进程所占CPU百分比
  • 0.0 ni:用户进程空间内变更过进程优先级的进程占用CPU百分比
  • 97.8 id:空闲CPU百分比
  • 0.0 wa:等待输入/输出的进程的占用CPU百分比
  • 0.0 hi:硬中断占用的CPU百分比
  • 0.0 si:软中断占用的CPU百分比
  • 0.0 st:虚拟机占用CPU百分比。当有虚拟机时,虚拟CPU实际等待CPU的时间百分比
4、第四行(物理内存相关,按m键进入可视化显示)
  • KiB:计量单位,kilo binary bit的缩写,1KiB = 1024B,1Ki = 1024,1K = 1000
  • 1881840 total:总量
  • 80768 free:可使用
  • 873712 used:已使用
  • 927360 buff/cache:已缓存
5、第五行(交换分析相关,按m键进入可视化显示)

进程信息

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 3493 root      20   0  680300  14288   2076 S   0.7  0.8 250:01.91 barad_agent
 6493 root      20   0 1033692  36720  18684 S   0.7  2.0  23:03.33 YDService
 6816 root      20   0 1157576   6984   3168 S   0.3  0.4   0:29.40 sh
    1 root      20   0   51936   3904   2428 S   0.0  0.2  14:00.27 systemd
    2 root      20   0       0      0      0 S   0.0  0.0   0:02.17 kthreadd

top命令查询出的进程信息默认根据CPU占用率从高到低排序展示

  • PID:进程ID
  • USER:所属用户的用户名
  • PR:优先级(值越小优先级越高)
  • NI:优先级(值越小优先级越高)
  • VIRT:使用的虚拟内存的大小(单位KB)。VIRT=SWAP+RES,SWAP:(进程使用的虚拟内存中被换出的大小)
  • RES:使用的未被换出的物理内存的大小(单位KB)
  • SHR:共享内存大小(单位KB)
  • S:状态
  • %CPU:占用CPU的百分比
  • %MEM:总共占用内存的百分比
  • TIME+:总共占用的CPU时间
  • COMMAND:产生进程的命令

交互式命令

只列举了部分交互式命令

  • E:更改系统资源信息中的内存单位(KB、MB、GB、TB、PB)
  • e:更改进程信息中的内存单位(KB、MB、GB、TB、PB)
  • 数字1:显示所有cpu情况(默认只展示一条)
  • x:高亮显示根据哪一列熟悉进行排序
  • </>:修改排序的字段(默认根据CPU)
  • n:输入每次要展示的进程信息行数
  • H:展示线程信息的开关

常用参数(持续补充)

  • -d:top结果的更新速度,单位为秒
  • -n:设定显示top结果的次数,随后自动退出命令
  • -b:批处理模式,不进入交互式模式
  • -p:指定需要展示的进程ID
  • -H:显示线程信息(配合-p参数使用,类似ps命令的-T与H参数)

实际应用(持续补充)

1、查看top中的所有的进程信息

交互式中top命令只会展示部分进程信息,如果想要查看所有的进程信息,可以:

top -b -n > out.log

将一次top的完整结果输出到文件中

2、查看进程的线程信息

top -H -p {PID}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值