当前位置:首页 > 经验 >

cpu负载多少算正常(cpu负载100怎么解决)

来源:原点资讯(www.yd166.com)时间:2022-10-31 02:31:03作者:YD166手机阅读>>

作者:任坤


现居珠海,先后担任专职 Oracle 和 MySQL DBA,现在主要负责 MySQL、mongoDB 和 Redis 维护工作。


本文来源:原创投稿


*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


1、背景

某项目的开发环境,单台虚拟机装了1套mongo集群用于测试,1个mongos 3节点config 1shard * 3副本,总计7个mongo实例。 mongo版本4.2.19,OS为centos 7.9。

测试结束后CPU负载一直维持在50%左右,而此时mongo的qps已经下降为0。

这台机器上只安装了mongo,将所有mongo实例关闭,cpu负载立即恢复正常,再将mongo实例开启,过了一会cpu负载又开始飙升。场景能复现,且确认是跟mongo实例有关系。

2、诊断

执行top命令,cpu的usr已经达到了40%,但是前几个进程的%cpu加起来远远凑不够数。

cpu负载多少算正常,cpu负载100怎么解决(1)

查看mongos的qps,确实没有执行用户命令了。

cpu负载多少算正常,cpu负载100怎么解决(2)

dstat查看整体负载(vmstat格式化做的不好,最后几列总是对不齐整)。

cpu负载多少算正常,cpu负载100怎么解决(3)

除了cpu负载不正常,其余指标均正常,中断和上下文切换也不算高,不太可能是这两个引发的。 perf record -ag -- sleep 10 && perf report 查看cpu执行情况。

cpu负载多少算正常,cpu负载100怎么解决(4)

确实有大量mongo调用,但是API命名不直观,无法猜测对应的执行逻辑。

至此,确认是mongo实例引发的问题,但是mongo的应用连接为0,看调用API栈也找不到有用信息。

回到本文开头,top进程的cpu利用率加起来远远小于cpu总体负载,大概率是有频繁短时进程偷走了这部分CPU资源,导致top命令来不及捕获统计。

sar -w 1 查看每秒生成的进程数,平均每秒新建80多个进程,应该就是它了。

cpu负载多少算正常,cpu负载100怎么解决(5)

要抓出频繁建立短时进程的应用,可以采用execsnoop,该工具通过 ftrace 实时监控进程的 exec() 行为,并输出短时进程的基本信息, 包括进程 PID/PPID、命令行参数。

#下载execsnoop# cd /usr/bin wget https://raw.githubusercontent.com/brendangregg/perf‐tools/master/execsnoop chmod 755 execsnoop

以下是输出内容,全是监控系统在执行,不停的连接mongo并对输出结果执行grep过滤,每个操作都会衍生一个新线程/进程,10s捕获 了400多条记录。

cpu负载多少算正常,cpu负载100怎么解决(6)

将zabixx进程关闭,cpu马上恢复正常,找到了元凶。

我们其他环境也采用了zabbix监控,但是都没有遇到类似问题。

该节点部署了7个mongo实例,zabbix默认对每个mongo实例都进行监控,相当于执行损耗放大了7倍,而该机器是一台只有4核CPU的虚拟机。

这些因素凑齐了就会爆发问题。 这是个开发环境,暂时关闭了zabbix监控,后续要对监控逻辑进行优化,尽量减少连接db的次数以及grep调用链的长度。

3、小结

当机器cpu负载持续高涨却抓取不到top进程时,可以采用execsnoop抓取短时进程,类似工具还有iosnoop、opensnoop。

栏目热文

负载是进线还是出线(负载端是进线还是出线)

负载是进线还是出线(负载端是进线还是出线)

电气是电能的生产、传输、分配、使用和电工装备制造等学科或工程领域的统称。是以电能、电气设备和电气技术为手段来创造、维持与...

2022-10-31 02:43:17查看全文 >>

电流和负载有什么关系(电机启动电流与负载关系)

电流和负载有什么关系(电机启动电流与负载关系)

关于负荷分级及负荷的计算电流,最近有不少电气设计初学者都在讨论。近些年来随着经济和科学技术的发展,建筑电气设计内容越来越...

2022-10-31 02:40:11查看全文 >>

什么叫做负载(什么是负载什么是负荷)

什么叫做负载(什么是负载什么是负荷)

什么地线?地线,又称避雷线,是指用来将电流引入大地的导线;电气设备漏电时,电流通过地线进入大地。地线的符号是E(Eart...

2022-10-31 03:17:05查看全文 >>

洗衣机出现负载怎么解决(滚筒洗衣机负载啥意思)

洗衣机出现负载怎么解决(滚筒洗衣机负载啥意思)

因为现在生活中很多人都是使用洗衣机来清洁衣物的,所以洗衣机成为一种非常常见的家用电器。在洗衣机出现故障的时候,大家需要了...

2022-10-31 03:11:23查看全文 >>

负荷与负载有什么区别(感性负载与容性负载的区别)

负荷与负载有什么区别(感性负载与容性负载的区别)

什么是电气(力)负荷?怎么计算?想必大部分电气人员都非常清楚,但是对于一个刚刚入门或工作一年半载的电气人员来说,就可能一...

2022-10-31 03:06:45查看全文 >>

电机负载与电流的关系(电机负载与功率关系)

电机负载与电流的关系(电机负载与功率关系)

该话题是缘于一个电机使用者的疑问:该客户原来使用的某电机企业的3级能效电机,在一次节能改造中,更换成了该企业生产的2级能...

2022-10-31 03:06:07查看全文 >>

负载通常指的是什么(负载有哪三种)

负载通常指的是什么(负载有哪三种)

讲到电力负荷的计算,想必大部分从业多年的电气工程师都陌生了,但是对于一个初学者而言就可能一知半解了。那么什么是电力负荷呢...

2022-10-31 03:19:20查看全文 >>

充电器空载是什么意思(电瓶充电器显示空载是什么情况)

充电器空载是什么意思(电瓶充电器显示空载是什么情况)

充电器这种附属品,也需要学习使用技巧吗?很多人都会觉得是不是小题大做了,我每天都插在插座上,也没看见发生什么啊。这种想法...

2022-10-31 03:08:38查看全文 >>

什么叫负载(网卡负载是什么意思)

什么叫负载(网卡负载是什么意思)

电子负载是一种常用的测量仪器,一般在选购电子负载的时候,主要看电源的输出电压和输出功率,看看是否适合,通过测量参数进行选...

2022-10-31 03:08:53查看全文 >>

负载怎么理解(负载是输出还是输入)

负载怎么理解(负载是输出还是输入)

关于用电负荷分级及供电要求的理解,想必从事电气设计行业多年的设计人员都非常清楚。但是相对一个初学者来说就可能一知半解了。...

2022-10-31 03:20:28查看全文 >>

文档排行