跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Apache httpd 引发的丢包问题求解
未分類
18 4 月 2021

Apache httpd 引发的丢包问题求解

Apache httpd 引发的丢包问题求解

資深大佬 : zhoudaiyu 7

昨天巡检的时候看 apache 监控视图(open-falcon)发现某台 apache 的网卡流量和连接数从前天晚上突然降到非常低,没来得及保留现场赶紧重启 apache 后恢复。排查了该机器 CPU 内存都没什么问题,apache 日志并没有异常,内核日志无异常,后来看了看 TCP 的监控,发现出问题的时候,有很多 TCPLISTENOVERFLOW 的报错,查了一下可能和 Backlog 和 somaxconn 等参数有些关系,后来我查了一下这台机器的这些配置和其他机器有无差别,也没发现有啥问题。不知道大家有啥排查思路?

大佬有話說 (4)

  • 資深大佬 : liuxu

    TCPLISTENOVERFLOW 的问题在于 backlog 的队列满了没能及时消费掉,所以 tcp 协议栈会停止接收新连接(不返回任何 tcp 包,而是服务端过一会返回 syn ack 装傻告诉客户端没收到 ack,客户端会重发 ack 建立连接),引发这个问题在于为什么你的 apache 的 accept()没有快速消费掉 backlog 的队列

    你当时的情况应该是 ESTABLISHED 的连接是满的,只是新连接建立不起来

    流量非常低,是因为服务端重复返回 syn ack,装成没收到客户端的 ack,这会导致客户端根据间隔时间指数增加的方式重复发送 ack/psh ack 业务数据包,所以没有正常的入网流量,出网流量会根据你的业务情况,如果不是下载和推送数据类,由于 ESTABLISHED 的连接没能及时处理,也就没有什么出网数据包了,所以出网流量也会很低

    重启一下就能好的很难事后分析,自己看看你的业务逻辑和代码吧

  • 資深大佬 : liuxu

    其实没有业务场景的话我能假设一种情况,你前面有负载均衡 lb,后面 3 台服务器 abc,假设某种原因,ab 服务器当机几分钟后正常,导致 lb 将流量全部给了服务器 c,服务器 c 连接太多,当你重启 c 后,lb 有均分给 3 台服务器了,所以就出现了你这种情况

  • 主 資深大佬 : zhoudaiyu

    @liuxu 十分感谢!您的意思是可能是 lb 的问题? lb 是硬件的 lb,用了好几年了都挺稳的,不过也不排除

  • 資深大佬 : liuxu

    @zhoudaiyu 没有当时情况的具体分析,很难说是什么问题

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具