记录最近的几个bug

本文详细记录了服务器出现的connectionresetbypeer错误的原因、排查过程及解决方案,包括网络保活机制、负载均衡器配置及性能优化。同时,探讨了在运维层面上遇到的其他挑战,如中断处理和中断分配问题,以及最终通过调整配置实现问题解决的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录最近出的几个bug

connection reset by peer

最近服务器经常性的出现connection reset by peer的错误,开始我们只是以为小概率的网络断开导致的,可是随着压力的增大,每隔2分钟开始出现一次,这就不得不引起我们的重视了。

我们的业务很简单,lvs负责负载均衡(采用的是DR模式),keepalive timeout设置的为2分钟,后面支撑两台推送服务(后面叫做push),客户端首先通过lvs路由到某台push之后,向其发送推送消息。

客户端使用的是python request(底层基于urllib3),首先我很差异出了这样的错误竟然没有重试,因为写代码的童鞋告诉我会有重试机制的。于是翻了一下request的代码,竟然发现默认的重试是0,一下子碉堡了。

不过,即使改了重试,仍然没有解决reset by peer的问题。通常出现这种情况,很大的原因在于客户端使用的是keep alive长连接保活tcp,但是服务器端关闭了该连接。可是我们的服务器实现了定时ping的保活机制,应该也不会出现的。

然后我将目光投向了lvs,因为它的timeout设置的为2分钟,而reset by peer这个错误也是两分钟一个,所以很有可能就是我们的定时ping机制不起作用,导致lvs直接close掉了连接。

于是查看push自己的代码,陡然发现我们自己设置的定时ping的时间是3分钟,顿时无语了,于是立刻改成1分钟,重启push,世界清静了。

ifconfig overruns

push换上新的机器之后,(性能妥妥的强悍),我们竟然发现推送的丢包率竟然上升了,一下子碉堡了,觉得这事情真不应该发生的。通常这种情况发生在cpu处理网络中断响应不过来。但是我们可是妥妥的24核cpu,并且开启了irqbalance。

好不,用cat /proc/interrupts之后,发现所有的网卡中断都被cpu0处理了,irqbalance完全没有起作用。google之后发现,有些网卡在PCI-MSI模式下面irqbalance无效,而我们的网卡恰好是PCI-MSI模式的。

没办法,关停irqbalance,手动设置网卡中断的SMP_AFFINITY,一下子世界清静了。

总结

可以发现,最近出的几次蛋疼的事情都是在运维层面上面出现的,实际测试也测不出来,碰到这样的问题,只能通过log这些的慢慢摸索排查了。当然也给了我一个教训,任何error级别的log都应该重视,不应该想当然的忽略。

bug 记录是一种软件开发中常用的方法,用来记录程序中出现的错误或者异常情况。它是软件测试的重要环节,有助于开发人员更好地追踪和解决bug,同时也方便团队间的沟通和协作。 在Word末班的情况下,bug记录可以被用来记录Word应用程序中出现的各种错误和问题。这些问题可能是功能缺陷、用户界面问题、性能问题等。通过记录这些bug,可以帮助开发人员准确定位问题,并提供修复的指导和参考。 一个有效的bug记录通常包括以下几个主要方面: 1. 问题描述:详细描述bug的具体表现和出现的环境条件,以便开发人员能够复现该问题。 2. 问题重现步骤:提供重现该bug的详细步骤,让开发人员可以按照这些步骤来定位和修复问题。 3. 优先级和严重程度:对bug进行分类,分别给出优先级和严重程度,以帮助开发人员优先解决重要且影响较大的问题。 4. 日志和截图:提供相关的日志记录和截图,以便开发人员更好地理解问题和进行调试。 5. 解决方案或修复建议:如果可以,尽量提供对该bug的解决方案或修复建议,这样可以帮助开发人员更快地解决问题。 此外,一个好的bug记录系统对于跟踪和管理bug也非常重要。团队成员可以通过该系统中的与bug相关的字段,例如状态、指派人等,了解bug的当前状态和处理进度。这样团队内部可以更加高效地分工合作,从而提高整体的开发效率。 综上所述,bug记录在软件开发中是十分重要的一环,它对于发现、修复和追踪问题起到了关键的作用。在Word末班中,通过良好的bug记录和有效的协作,可以帮助开发团队更好地完善和提升Word应用的质量和用户体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值