redis主机软中断均衡

背景:

1.redis集群从IDC机房迁移至公有云;

2.该集群业务访问量大,峰值超过200万TPS,节点CPU使用率偏大;

 

问题:

凌晨变更对接公有云集群之后,次日白天监控发现redis节点平均CPU使用率(avgcpu)从30%增长到40%,节点最大CPU使用率(maxcpu)峰值能达到98%,与IDC相比差异较大,IDC为(avgcpu:30%,maxcpu:50-60%,由于业务特性决定也存在一定差异)

 

定位思路:

1.考虑到单节点CPU使用率接近100%,首先怀疑业务存在热点数据,对单个节点的TPS异常高,但和业务侧确认,业务侧并无任何变更,正常来讲不会突然出现过热数据;又希望找到CPU使用率最高的节点,发现并非固定的,与热点数据的现象不吻合,热点数据正常只会存在某单一节点上;

2.怀疑物理机到虚拟机的主机差异,内核参数物理机历史上调优过,主要包括以下几项:

关闭大页:echo never > /sys/kernel/mm/transparent_hugepage/enable

echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf

echo "net.core.somaxconn=10000" >> /etc/sysctl.conf

修改端口区间:echo "net.ipv4_local_port_range = 20000 65535" >> /etc/sysctl.conf

对虚拟机也进行修改,观察平均CPU使用率有一定下降,但是效果并不明显;

3.考虑到业务TPS高,怀疑软中断分布不均导致使用到虚拟机上软中断集中的CPU的redis节点的异常,查看top,发现CPU0的软中断高达25%,其他CPU都是0,虚拟机都为16C,因为这部分虚拟机比较老,没有默认打开软中断均衡,使用以下方式打开:

安装:sudo yum -y install irqbalance.x86_64

启动:sudo systemctl start irqbalance.service

检查systemctl list-unit-files|grep irqbalance.service 或者 ps -ef|grep irqbalance

 

观察一段时间,发现avgcpu和maxcpu都有下降,已恢复至和IDC机房相当。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值