排查一次生产系统在云服务器卡断问题

问题现象

系统在客户端云平台部署后,主要的Web功能界面大概要1分钟才能出来,排查发现大量接口一直在pending。

排查思路

  1. 使用ab工具测试pending接口,测试接口性能实际服务响应正常,基本都在100ms以内访问
  2. 使用tcpdump抓包流量,发现前端刷新页面后实际流量没有打到服务器
  3. 怀疑阿里云是否有防DDOS请求,实际排查没有,而且请求量实际不大
  4. 发现接口调用在浏览器有问题,实际使用ab测试没有问题,问题定位到了浏览器
  5. 经检索查询发现chrome最多同时只有6个并发请求,此时想到了请求被其他占用了没释放
  6. 最后发现界面有请求GIS离线服务,但是该云平台未部署GIS服务,但是Nginx之前还存在离线地图代理
  7. 此时定位到问题,是前端有部分页面还是请求离线网片请求,验证想法把nginx的代理修改,让部分错误的请求快速失败,再看看效果
  8. 让这部分请求快速失败后,立马业务界面刷新后渲染很卡,接口也不pedding了。

浏览器最大并发数连接

浏览器的最大并发连接数是指浏览器在同一时间可以与服务器建立的最大连接数量。这个限制主要是为了避免对服务器造成过大的负载,同时也与网络协议和浏览器设计有关。以下是不同浏览器对并发连接数的限制情况:

HTTP/1.1 和 HTTP/1.0

Google Chrome:每个域名最多允许6个并发连接。
Mozilla Firefox:默认情况下每个域名的并发连接数为6。
Microsoft Edge:基于Chromium内核,同样遵循每个域名6个并发连接的限制。
Safari:较旧版本(如Safari 3和4)的并发连接数为4,而较新版本(如iPhone 3、5)的并发连接数为6。
Opera:较新版本(如Opera 10.51+)的并发连接数为8。
Internet Explorer:IE8及以上版本的并发连接数为6。

HTTP/2 和 HTTP/3

HTTP/2 和 HTTP/3 支持多路复用,可以在单个 TCP 连接上同时发送和接收多个请求和响应。因此,即使浏览器的并发连接数限制为6个,使用 HTTP/2 或 HTTP/3 的网站仍能实现更高的并发性和性能。
优化建议
域名分片:将资源分散到不同域名下,可以突破单个域名的并发限制。
减少请求数量:通过合并CSS、JS文件,使用缓存等方式减少HTTP请求。
利用HTTP/2:确保网站支持HTTP/2,以充分利用多路复用的优势。


文章作者: 热心网民詹Sir
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 编程之家
java java chrome
喜欢就支持一下吧