busybox的top显示和linux 桌面版本的top显示有些细微的区别


busybox的top显示和linux 桌面版本的top显示有些细微的区别
summary区域--概要区域

image

Mem: 23018544K used, 1485568K free, 1307440K shrd, 676K buff, 7422896K cached

这一行显示了memory的总体使用情况,这个信息是通过读取/proc/meminfo获取的。

used(23018544K)是当前已用的内存

free(1485568K)是当前可用的内存

shrd(1307440K)是tmpfs使用的内存数量,一般用于shmem

buff(676K)是直接访问块设备时的缓冲区的总大小。

cached(7422896K): 从disk读文件的时候用的内存缓存。

CPU0: 9% usr 1% sys 0% nic 86% idle 1% io 0% irq 0% sirq

CPU1: 5% usr 3% sys 0% nic 91% idle 0% io 0% irq 0% sirq

CPU2: 9% usr 2% sys 0% nic 87% idle 0% io 0% irq 0% sirq

CPU3: 11% usr 1% sys 0% nic 87% idle 0% io 0% irq 0% sirq

CPU4: 13% usr 1% sys 0% nic 85% idle 0% io 0% irq 0% sirq

CPU5: 23% usr 1% sys 0% nic 75% idle 0% io 0% irq 0% sirq

CPU6: 36% usr 0% sys 0% nic 62% idle 0% io 0% irq 0% sirq

CPU7: 23% usr 2% sys 0% nic 72% idle 0% io 0% irq 1% sirq

CPU8: 5% usr 2% sys 0% nic 92% idle 0% io 0% irq 0% sirq

CPU9: 6% usr 4% sys 0% nic 88% idle 0% io 0% irq 0% sirq

CPU10: 5% usr 3% sys 0% nic 90% idle 1% io 0% irq 0% sirq

CPU11: 3% usr 1% sys 0% nic 94% idle 0% io 0% irq 0% sirq

CPU12: 4% usr 1% sys 0% nic 93% idle 0% io 0% irq 0% sirq

CPU13: 3% usr 1% sys 0% nic 94% idle 0% io 0% irq 0% sirq

CPU14: 4% usr 1% sys 0% nic 93% idle 0% io 0% irq 0% sirq

CPU15: 5% usr 1% sys 0% nic 92% idle 0% io 0% irq 0% sirq

这一行则显示了CPU的负载情况,多核CPU要查看每个核的负载情况,可以按1,再按1回到总的CPU负载情况。

usr 指的是用户进程空间未改变过优先级的进程占用CPU百分比

sys 指内核空间占用CPU百分比

nic 指用户进程空间改变过优先级的进程占用CPU百分比

idle 指空闲时间百分比

io 也就是iowait,指的是空闲&等待I/O的时间百分比

irq 指的是硬中断占用的CPU时间百分比

sirq 指的是软中断占用的CPU时间百分比

Load average: 0.66 0.55 2.60 2/2517 127

这一行显示了整体系统负载,整体负载是CPU负载,Disk负载,网络负载和其它外设负载的综合反馈。

前面三个数分别对应过去1分钟,5分钟,15分钟的负载。在linux中,Load是处于可执行态(TASK_RUNNING)和不可中断睡眠态(TASK_UNINTERRUPTIBLE)的进程数。

第三个值(1/50)分别表示当前运行进程(1,包括LWP)和总的进程(50,同样包括LWP)。

第四个值显示的是最后一个线程ID
task区域显示了每个进程的负载情况
    8     1 root     S   12711m  50%  11   0% java -javaagent:/home/app/agent/skywalking-agent.jar -Djava.security.egd=file:/dev/./urandom -server -Dfile.encoding=utf-8 -cp .:*:lib/* 
    1     0 root     S     1596   0%   1   0% {start.sh} /bin/sh /home/app/start.sh --spring.profiles.active=dev --server.servlet.context-path=/i6000-ics-service --server-web.host=http://172.
其中:

PID是进程ID

PPID是父进程ID

USER是进程的用户

STAT是进程的状态

VSZ是映射到进程地址空间中的内存量,这个虚拟内存有可能大于实际物理内存(部分被swap out)。

%MEM 是这个进程使用的物理内存的页数乘以100除以物理内存的总页数。初略地看,就是值越高,进程耗费的内存越高。

CPU 多核中,这个进程最后运行所在的核

%CPU 进程使用的CPU的占比,视实现情况,多核有的是指某一单核的占比,有的是所有核CPU的占比。

COMMAND 进程运行的指令。
分析经验
通常第一步可以观察Load和CPU负载,如果Load高且CPU负载高,说明Load高很可能是CPU负载高引起的,反之则可能是其它负载(I/O等)。

如果CPU负载高,可以进一步分析CPU的几个核心指标,以及各个核的情况。

如果是usr高,说明cpu确实消耗在进程里,可以检查进程是否有死循环或者CPU密集计算,频繁发生FullGC等
如果sys高,说明CPU消耗在系统内核,可以检查驱动,排查是否存在I/O,内存等系统资源瓶颈。
如果sirq高,可以排查下网络I/O瓶颈。
负载很重要的是要观察趋势,不管是CPU负载还是mem使用,都观察下趋势,是上涨还是下降,再结合系统情况作出猜测。

Load则直接可以从三个数值看出趋势来。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM