cpu使用率

cpu使用率指标:

通过cat /proc/stat | grep ^cpu查看:
1.user:用户态cpu时间。注意:它不包含nice时间,但包含guest时间
2.nice:代表低优先级用户态cpu时间,也就是进程的nice值被调整为1-19之间的cpu时间,值越大代表优先级越低
3.system:内核态cpu时间
4.idle:cpu空闲时间。⚠️注意:它不包含等待io的时间
5.iowait:等待io的cpu时间(top中wa偏高,代表io慢,一定是性能问题需要排查)
6.irq:代表处理硬中断的cpu时间
7.softirq:代表处理软中断的cpu时间
8.steal:当系统运行在虚拟机的时候,被其他虚拟机占用的cpu时间.该值越高说明资源竞争越激烈。
9.guest:通过虚拟化运行其他操作系统的时间,也就是运行虚拟机的cpu时间
10.guest_nice:以低优先级运行虚拟机的时间

用户cpu和nice cpu比较高,说明用户态进程占用比较高的cpu,所以应该重点排查进程的性能问题
系统cpu高,说明内核态占用较多的cpu,所以应该重点排查内核线程或者系统调用的问题
io等待cpu高,说明等待io的时间较长,说明应该排查系统存储是不是出现io问题
软中断和硬中断高,说明应该重点排查内核中的中断服务程序

cpu使用率:在这里插入图片描述
top命令中的cpu默认使用3s的时间间隔
ps命令中的cpu使用的是进程的整个生命周期

查看进程cpu使用情况:pidstat 1

进程的pid一直变的原因:
1.进程在不停的崩溃重启,比如因为段错误、配置错误等,这时候进程退出后可能又被监控系统自动重启
2.这些进程都是短时进程,也就是在其他应用内部通过 exec 调用的外面命
令。这些命令一般都只运行很短的时间就会结束,你很难用 top 这种间隔时间比较长的
工具发现

cpu性能优化的思路

应用程序的维度可以使用吞吐量请求延迟来评估应用程序的性能
系统资源的维度可以使用CPU使用率来评估系统cpu的使用情况

应用程序优化:
1.编译器优化 2.算法优化 3.异步处理 4.多线程替代多进程 5.善用缓存

系统优化:
1.cpu绑定:把进程绑定在一个或多个cpu上可以提高cpu缓存的命中率,减少跨cpu调度带来的上下文切换问题
2.cpu独占:跟cpu绑定类似,进一步将cpu分组,并通过cpu亲和性机制为其分配进程。这样,这些cpu就由指定的进程独占
3.调整优先级:适当的调低非核心应用的优先级,增加核心应用的优先级
4.为进程设置资源限制
5.NUMA(Non-Uniform Memory Access)优化:支持 NUMA 的处理器会被划分为
多个 node,每个 node 都有自己的本地内存空间。NUMA 优化,其实就是让 CPU 尽
可能只访问本地内存。
6.中断负载均衡:无论是软中断还是硬中断,它们的中断处理程序都可能消耗大量的cpu资源,开启 irqbalance 服务或者配置 smp_affinity,可以把中断处理程序自动负载均衡到多个cpu上。

cpu的运行模式
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值