Published on

一个关于客户程序网络问题定位的故事

Authors
  • avatar
    Name
    Mao
    Twitter

问题描述

在假期前一周,客户反馈在他们准备测试Web服务的吞吐量性能指标,但是发现了一个问题,并怀疑是云厂商在处理过程中导致了问题,要求给一个分析报告。问题描述如下:

浏览器发起的http请求,HttpHeader中connection:keepalive,经过了云上的CDN, DDoS, WAF, LB, 虚拟网络, 容器网络等节点后,到达应用的web服务器;这时候 HttpHeader中connection变成了close。由于没有设置keepalive,从而导致导致web服务器出现了大量timewait,影响吞吐量。

问题分析

将客户问题的原始描述,稍微整理一下,得到数据流如下:

Browser -> CDN -> DDoS -> WAF -> LB -> PM -> VM(Port) -> Container(Port) -> App

问题现象是 从浏览器发起的 HTTP 请求中 Header 中的 Connection:keepalive ,到了App之后,Header的Connection值变为了close。

这是谁的问题?

客户提出问题之后,站在旁观者角度,这个问题是谁的问题?

  • 客户的问题?是的,客户遇到问题了。
  • 云服务商的问题?是的,客户对云服务商提出自证清白的要求。

这是个什么问题?

将客户问题的原始描述,稍微整理一下,得到数据流

问题处理

可改进点