记录最近出的几个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都应该重视,不应该想当然的忽略。

转载于:https://www.cnblogs.com/xiaowangba/p/6313746.html

记录最近的几个bug相关推荐

  1. [记录]mscorlib recursive resource lookup bug解决方法

    [记录]mscorlib recursive resource lookup bug解决方法 参考文章: (1)[记录]mscorlib recursive resource lookup bug解决 ...

  2. 记录工作中第一次解决bug的小事

    关于在openwrt中丢配置的问题     前一段时间,就是国庆节前一两天吧,我的导师带我们去实验室,任务就是改正测试部门发来的bug.本来分了我五个问题,但是因为我之前没有经验,所以着重改其中一个b ...

  3. 记录下UE4解决EQS Bug的过程

    今天在做EQS测试的时候,出现了无法working的bug,逻辑很简单就是查询到一个点然后Move to过去.行为树在执行EQS这个节点来回闪烁无法Move to. 能想到出错的地方全部重新写了一下, ...

  4. 记录回家第一天的bug解决和心理过程

    1.先说正事 背景:Mac下干净的环境,配置实验室工程所需开发环境,遇到了一系列的问题 工程是用Springboot+maven+vue组成的,使用的IDE是IDEA 问题1:在IDEA 下右边框里的 ...

  5. Android~记录material.tabs.TabLayout一个bug

    在使用TabLayout过程中发现一个奇葩的bug,说我xml布局文件有问题. 1.完整log 2019-12-30 16:50:41.426 9068-9068/? E/ActivityThread ...

  6. 记录小程序 canvas fillText bug

    前提 微信项目中要用canvas制作一张授权书, 如下这种: 在使用canvas进行渲染时, 发现会出现bug: 在安卓机上 姓名能显示, 手机号显示不出来 代码如下: ctx.font=" ...

  7. 记录-获取验证码失败-查找bug过程

    如图:出现下面这个提示,刚开始我以为是哪里出现bug了 通过fiddler抓包发现,返回一个error code:11006 查看响应信息,就是前端请求成功,后端返回一个错误代码 最后排查出来错误了, ...

  8. 记录一次frp失效bug

    突然frp连不上去了,发现硬盘占用超过98%,估计是硬盘塞满了,清理了硬盘就好了. 另外阿里云安全组记住开放 所有协议,不只是tcp协议

  9. 记录一个Python多线程的bug

    错误代码 import time import requests from threading import Threadurl = 'http://127.0.0.1:5000/'def get_h ...

  10. 记录一些常用软件的bug踩坑及修复策略(长期更新)

    1.Jade 339错误 报错内容: Run-time error '339*: Component ' THREED32. OCX"not correctly registered: fi ...

最新文章

  1. c语言大作业之镖行天下,天下识君--如何最快速度刷完天下识君
  2. ML之UL:无监督学习Unsupervised Learning的概念、应用、经典案例之详细攻略
  3. Python基础教程: import与from import使用
  4. 基于RadeonRays的光线追踪全局光照实现方案
  5. Oracle11gr2新增APPEND_VALUES提示
  6. pythonsocket自动化教程_Python基本socket通信控制操作示例
  7. SVN创建分支与分支合并主干
  8. incaseformat病毒分析
  9. 【知识积累】Edge vs Fog Computing 边缘计算和雾计算的相同与不同
  10. 华为ensp配置AC+AP多个SSID信号
  11. 【面经】京东搜索广告算法一面
  12. 网易游戏AI Lab 招聘CV日常实习生
  13. Excel批量合并相同内容单元格操作——WPS太秀了
  14. 国外网站打开非常慢,什么鬼?
  15. 未来的电子计算机作文300字,未来的校园科幻作文300字(精选3篇)
  16. Linux 桌面虚拟化技术 KVM
  17. 及时反馈,让员工尊重你,信任你
  18. 计算机不识别u盘咋办,电脑无法识别u盘如何修复,电脑不识别u盘怎么办
  19. struct timeval结构体 以及 gettimeofday()函数、struct timespec结构体
  20. 计算机基础——5.2 图像与图形

热门文章

  1. Oracle中INSTR函数,及在DB2、Sybase中与Instr函数功能相同的函数
  2. 撩开云计算神秘面纱之阿里云弹性计算服务篇
  3. asp.net如何定时执行任务
  4. iOS The run destination iPhone is not valid for Running the scheme ‘项目名‘
  5. iOS: OC/Swift使用CocoaPods生成Podfile文件、安装第三方SDK
  6. 使用Dom4j创建xml文档
  7. stm32GPIO8种模式
  8. 网站静态化与mysql优化
  9. QBackingStore::flush() called with non-exposed window, behavior is undefined
  10. 精心整理 | R语言中文社区历史文章合集(作者篇)