现网问题定位--CPU占用较高

项目场景:

此项目是我司的一个海外项目,功能类似于支付宝。


问题描述

项目投产后,正常的维护使用。在上周四,我们更新了微服务一个组件的包,到了周五早上,我们收到有一台服务器的CPU占用较高的告警通知。


原因分析:

我们收到了告警信息后,初步的排查过程如下:
1.是否是微服务出故障了?
我们通过监控平台查看了微服务的运行状态,运行状态正常;

2.是否是这个微服务节点业务处理有问题?
我们查看了日志,日志中并无相关的业务处理报错日志。
查看这个微服务相关的多个节点:这多个节点的硬件配置相同,安装的软件也相同;部署的新的组件X是从别的机器上拷贝过来的,所以问题不在软件上。

3.排查硬件
3.1CPU排查
既然CPU使用较高,我们先排查CPU,我们编写了一个python脚本,在机器上运行。
脚本如下:
在这里插入图片描述
通过在没有问题和有问题的机器上运行,看下执行的时间做比较,时间上基本相同,CPU的问题排除了
3.2内存排查
排查的依据:将固定大小的内存挂在到本地的一个目录上,通过内存对目录写入内容,待写入结束后,对比在没有问题和有问题的机器上运行结果。
过程如下:
(1)通过命令创建本地目录:

mkdir /tmp/tals

(2)查看本地可用内存,挂在内存到刚才创建的目录

mount -t tmpfs -o size=10g tmpfs /tmp/tbls

(3)执行通过内存写入目录内容命令:

dd if=/dev/zeor of=/tmp/tbls bs=1M count=4096 oflag=direct

(4)查看写入结果:
有问题机器:
在这里插入图片描述

没有问题机器:
在这里插入图片描述
有问题的机器,内存读写在783MB/s,没有问题的机器,内存读写再1.9GB/s

问题初步结论:

该问题非业务应用软件引起的,是由该主机配置引起的。

哈哈,到此可以甩锅出去了,不是我们应用软件的问题,你们运营人员定位去吧,非常开心!!!!!!!

后来和运营部门沟通,该问题的引起的最终原因是:虚拟机内存扩到64G后触发了NUMA bug导致cpu高,读写内存速度慢

解决方案:

虚拟主机内存扩充暂时回退,重新规划扩容。

总结:

开心 ^_^,
    经过通宵的问题定位,终于有了明确的结论,就是太费时间了,绕了一大圈,问题出现在底层上。
    这又要脑补好多知识了,NUMA。。。。。。。。。。。。。
    痛并快乐着。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BullSmall

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值