cpu性能数据_cpu性能天梯图知乎

cpu性能数据_cpu性能天梯图知乎CPU性能分析和指标一、CPU的构成:1.【lscpu】   2.【vmstst】     buff 缓冲:降低和磁盘交互的频率,比如垃圾桶,满了倒垃圾cache

CPU性能分析和指标   一、CPU的构成:   1.【lscpu】   
cpu性能数据_cpu性能天梯图知乎      2.【vmstst】   
cpu性能数据_cpu性能天梯图知乎              buff 缓冲:降低和磁盘交互的频率,比如垃圾桶,满了倒垃圾   cache 缓存:更快的取数据,比如家里的药箱,只有常用的药   二、CPU利用率.【top】{他是一个时间百分比,一般的监控是cpu利用的总和,并不能分析是有效利用还是无效利用,要去服务器上看是不是us和sy高}   看下面图:PID这一行的%CPU是逻辑和的利用率,双核可以达到200%,4核的话可以到400%   图中的load是平均时间内1分钟5分钟15分钟内的任务数   
cpu性能数据_cpu性能天梯图知乎   在期间 敲 1      
cpu性能数据_cpu性能天梯图知乎      1.cpu(s):物理核     cps逻辑核   2.    us:用户空间   sy:系统空间   ni:进程优先级切换(优先级高的进程会抢占cpu,切换多ni就会高)   id:空闲,wa:等待IO读写(磁盘和网络)   wa:IO等待(网络和磁盘,wa过高说明磁盘网络出现异常)   hi:硬中断(硬件引起的,比如磁盘,网络,键盘,hi超出10%说明cpu有很严重的问题)   si:软中断 (cpu陷入到内核空间执行读写数据),他是内核层面的,si很高的话,一定是在做数据读写,可能是死循环,可能在写日志(日志级别低、内核层面的系统调用,此时需要打印内核层面的设备日志)   st:虚拟机,用的不多,不用管   us和sy是有效利用率【us高也可能是代码问题,sync和yield会导致高】   其他都是无效利用率   dmesg | grep sda 硬盘   dmesg | more 内核   dmesg | grep eth 网卡日志   dmesg | head -20 输出前 20 行设备日志   dmesg | tail -20 输出后 20 行日志   dmesg | grep -i memory 查看内存日志   dmesg | grep -i usb 查看 usb 日志   dmesg -c 清空缓冲日志   watch “dmesg | tail -20” 实时监控设备日志   日志中出现关键字 oom kill ddos等就是有问题了,就要分析   比如这个,内存溢出,杀死了进程   
cpu性能数据_cpu性能天梯图知乎           这个例子就是写日志,但是没有空间写了,导致si很高   
cpu性能数据_cpu性能天梯图知乎   3.【watch -d cat /proc/interrupts】查看硬中断   
cpu性能数据_cpu性能天梯图知乎   左边的数字是中断号,最右边的是硬件名称,对应绑定的cup   4.【watch -d cat /proc/softirqs】查看软中断   【ethtool -1 eth0】网卡队列   三、进程和线程   1.进程:分配资源   2.线程:任务调度   a.cpu线程【执行调度】   1.cpu的核数表示一次性可以调度的任务数   2.cpu时间片分配   a.2核调度2个任务   b.2核调度20个任务,其中18个任务排队   c.任务越多时间片越少,切换越快,(切换一定伴随cpu中断)导致cpu消耗很高,当时间片用完cpu会切换到下一个任务【被动切换】,下图in是中断,cs是切换   b和c一起就是cpu的上下文切换,计数器【存储任务位置】和寄存器【存储任务数据】   【pidstat -w -p {PID}】查看上下文切换数据   
cpu性能数据_cpu性能天梯图知乎                  cswch 主动切换 (内存不足,io有问题)  nvcswch 被动切换(时间片用完了)   c.load   A.平均时间内,系统同步处理的任务数,对应1分钟5分钟15分钟   B.从左到右,递减【负载在增加】反之【负载正在降低】   C.如果双核load现在是2 目前是满载状态,load大于核数,说明是过载状态,是可以处理的,是在排队处理  【vmstst 1 10】   
cpu性能数据_cpu性能天梯图知乎   (1)  load=r+b   (2)  r  –>runnable 等待资源    running  等待线程锁   (3)  b –>black 拿到了线程锁, 处于不可中断的状态   D.举个例子:【stress-ng -c 20 -t 100】 此时查看top   
cpu性能数据_cpu性能天梯图知乎   b.应用线程【被调度】:将数据编译成cpu可以识别的内存指令,提交cpu,cpu去调度,cpu的核数越多,同步调度的任务数就越多   1.tomcat   2.nginx   3.mysql   c.特殊任务对cpu的消耗   1.tomcat长连接到期,线程释放   2.nginx 惊群,线程批量启动和休眠   d.系统调用   敲top,处于用户空间,敲下之后需要内核空间申请数据,切换到内核空间,内核空间会给出一个api让用户调用,在切换到用户空间调用api。->一次调用,两次切换   【strace -o strace.log -tt -p {线程号、进程号}】系统调用日志   e.进程优先级   1.NI:优先级系数,范围-20到+19 【在top下面敲 r    回车   进程号 回车    NI的系数 回车】   2.PR:值越高,优先级越低   3.优先级越高,进程的cpu时间片越多,可以抢占cpu   打java堆栈脚本 bash show-busy-java-threads 上传到服务器,执行可以看到消耗cpu最高的几个线程打出来   总结几个常见的问题:   1.us高:可能是算法问题,函数sync【刷磁盘】和yield【放弃cpu】可能会导致   2.sy高:a.日志频繁读写,如日志权限不够或者路径不存在(cpu利用率会满),日志级别问题。   b.内核故障,如内存问题和网络问题(打印内存日志【dmesg | more】可以看出)   c.频繁的系统调用 【strace -o strace.log -tt -p {线程号、进程号}】系统调用日志       3.利用率过低   a.压力不够   b.参数配置-连接池   (1)数据库连接数   (2)中间件队列   (3)tcp队列   c.网络阻塞   (1)tcp   (2)socket   (3)本地网管   (4)防火墙   4.内核使用不均衡   进程绑定cpu  taskset -pc 0-3 pid 进程绑定逻辑核(进程重启时效)   5.无效利用   ni过高:修改进程优先级   wa过高:磁盘分析,网卡分析(切片多不多,cpu轮询数据包的总量)   6.hi  磁盘、网卡(网卡队列,网卡中断绑定)   7.si 内核中断,参考sy       CPU常用命令   mpstat   mpstat -P {cpu l ALL}   mpstat -I SCPU 1 统计软中断   pidstat -w -p 查看进程上下文切换   sar -u 1 5 采集cpu使用率   sar -q 1 5 采集进程队列和负载状态   ps aux | sort -k3nr |head -n 10 按照按照消耗CPU前10排序的进程   perf top 定位cpu热点   watch “dmesg | tail -20” 实时监控设备日志   taskset -pc 0-3 pid 进程绑定逻辑cpu   echo 1 > /sys/devices/system/cpu/cpu1/online 开启逻辑cpu   strace -o strace.log -tt -p 【pid】打印内核日志   sync【刷磁盘】   yield【放弃cpu】   watch -d cat /proc/softirqs 实时查看软中断   watch -d cat /proc/interrupts 统计进程中断的方式   sysstat   mpstat【cpu】   vmstat【cpu】   iostat【磁盘】   netstat【网络】   pidstat【进程】    

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/77652.html

(0)
上一篇 2024年 8月 3日
下一篇 2024年 8月 3日

相关推荐

关注微信