zoukankan      html  css  js  c++  java
  • 性能测试实战案例分享—连接未复用

    现象描述
    高并发情况下客户端的所有图片处理请求失败,返回大量500 InternalError服务器异常错误 
    问题定位
    1.系统结构与最大连接数的配置如下图所示: 
     
    前端nginx与应用服务部署在同一台服务器上,A1/A2服务器主要用于图片处理。 
    2.并发为200时,使用/sbin/ss --s 命令查看各服务器连接数。 
     
    3.上述连接数对比,结合当前并发数来看,这台服务器的连接数就比较的大了,进一步使用netstat命令查询,怀疑是由于应用服务A和后端nginx间连接未复用导致的大量500错误
    4.查看应用服务代码,发现确实没有使用httpclient连接池管理连接,在请求数量不断增多时大量占用端口被占用,无法建立新的连接,导致服务异常。
    问题原因
    应用服务器A使用httpclient向后端图片处理服务器A1、A2发起请求,没有使用连接池管理,每一个请求都建立一个新的连接,连接关闭过程有一定耗时,随着并发时间的增加,请求数量不断增加,导致后面的并发请求时端口被耗尽,新的连接又无法建立。
    解决方法
    应用服务器A与后端nginx间采用httpclient连接池来处理请求即可
  • 相关阅读:
    Redis Pipeline原理分析
    python 装饰器,传递类以及参数
    q
    Redis的EXPIRE过期机制介绍
    z
    julia .文档
    julia 安装
    python 弧度与角度互转
    python 角度和弧度转化
    机器人行业中我们常说的roll、yaw、pitch是什么?
  • 原文地址:https://www.cnblogs.com/andashu/p/14030914.html
Copyright © 2011-2022 走看看