上一篇文章搭建了plg日志监控,本次准备看下目前集群的性能。对应机器如下:虚机4,前一后三,4台配置均为4核4g物理机为20核32g台式机。

先进行原始nginx配置的压测 nginx配置如下:

user  nginx;
worker_processes  1;error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;#配置nginx  json格式日志log_format  main  '{"@timestamp": "$time_local", ''"remote_addr": "$remote_addr", ''"referer": "$http_referer", ''"request": "$request", ''"status": $status, ''"bytes": $body_bytes_sent, ''"agent": "$http_user_agent", ''"x_forwarded": "$http_x_forwarded_for", ''"up_addr": "$upstream_addr",''"up_host": "$upstream_http_host",''"up_resp_time": "$upstream_response_time",''"request_time": "$request_time"'' }';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;#gzip  on;upstream test.miaohr.com {server 192.168.175.128:8070;server 192.168.175.129:8070;server 192.168.175.130:8070;}server {   listen       80;   server_name  test.miaohr.com;   charset utf-8;   location / {   root   html;   index  index.html index.htm;   proxy_pass        http://test.miaohr.com;   proxy_set_header  X-Real-IP  $remote_addr;   client_max_body_size  100m;}   }
}

使用jmeter5.0进行压测,压测命令如下

jmeter -n -t  D:/testYc.jmx  -l D:/result.txt -e -o D:/webreport

其中
D:/testYc.jmx ------> 测试计划文件的路径
D:/result.txt ------> 将要生成的测试结果文件的存放路径
D:/webreport -------> 将要生成的web报告的保存路径
使用物理机cmd命令进行压测。线程为200,持续100s,报告如下

此时rt为180ms+,tps在980左右

修改nginx配置为长连接,长连接配置如下

user  nginx;
worker_processes  1;error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;#配置nginx  json格式日志log_format  main  '{"@timestamp": "$time_local", ''"remote_addr": "$remote_addr", ''"referer": "$http_referer", ''"request": "$request", ''"status": $status, ''"bytes": $body_bytes_sent, ''"agent": "$http_user_agent", ''"x_forwarded": "$http_x_forwarded_for", ''"up_addr": "$upstream_addr",''"up_host": "$upstream_http_host",''"up_resp_time": "$upstream_response_time",''"request_time": "$request_time"'' }';access_log  /var/log/nginx/access.log  main;sendfile        on;#tcp_nopush     on;keepalive_timeout  65;#gzip  on;upstream test.miaohr.com {server 192.168.175.128:8070;server 192.168.175.129:8070;server 192.168.175.130:8070;keepalive 500;#最大空闲连接数}server {   listen       80;   server_name  test.miaohr.com;   charset utf-8;   location / {   root   html;   index  index.html index.htm;   proxy_pass        http://test.miaohr.com;   proxy_set_header  X-Real-IP  $remote_addr;   client_max_body_size  100m;}   } location / {proxy_pass http://test-api;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_http_version 1.1;              # 设置http版本为1.1proxy_set_header Connection "";      # 设置Connection为长连接(默认为no)}}

进行第二次压测,报告如下

本次压测,rt降低到76ms,tps上升到2400+。对比短连接,集群的性能得到了很大的提升。但错误率指标有所上升。根据jmeter执行日志查看, 报错集中为以下内容

1650551535574,485,HTTP请求,Non HTTP response code: java.net.BindException,Non HTTP response message: Address already in use: connect,线程组 1-135,text,false,,2437,0,200,200,http://192.168.175.131/getSxbm,0,0,485

根据查阅后发现,这是由于压测机为windows系统,tcp端口资源来不及释放导致。与集群性能无关

长连接与短连接的区别,主要在于长连接模式下,不需要频繁的建立起tcp连接,同时也不需要频繁关闭,节省了这部分资源的消耗。这种情况下比较适合频繁请求的场景下。

nginx长连接与短连接性能对比相关推荐

  1. nginx做grpc负载均衡时长连接或者短连接

    nginx设置响应连接是长连接或者短连接 https://blog.csdn.net/qq_21127151/article/details/106880632 nginx反向代理时保持长连接 htt ...

  2. nginx设置响应连接是长连接或者短连接

    根据需求,需要使用nginx返回长连接和短连接响应. 配置思路 长连接: http {---------------------------keepalive_requests 100000; //这 ...

  3. TCP的长连接与短连接

    转自:https://blog.csdn.net/weixin_39850699/article/details/109903631 1 前言 可能很多 Java 程序员对 TCP 的理解只有一个三次 ...

  4. 什么是HTTP长连接、短连接

    什么是长连接.短连接? 长连接与短连接 所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持. 短连接 ...

  5. HTTP协议中的长连接和短连接(keep-alive状态)

    什么是长连接 长连接还是短连接 相比于短连接,长连接更节省资源.如果每发送一条消息就要创建链路.发起握手认证.关闭链路释放资源,会损耗大量的系统资源.长连接只在首次创建时或者链路断连重连才创建链路,链 ...

  6. 跨进程通信,到底用长连接还是短连接

    一个完整的软件系统大多数情况下是由多个进程共同协作进行的,哪怕它们在同一台服务器上.所以,进程之间如何进行高效的通信至关重要. 单个应用程序+单个数据库这套基础开发套餐我相信每个人都经历过,甚至在初期 ...

  7. HTTP长连接和短连接以及推送服务原理(转)

    HTTP长连接和短连接以及推送服务原理 转自:http://blog.csdn.net/freewaywalker/article/details/50067757 HTTP长连接和短连接1 1. H ...

  8. java如何实现Socket的长连接和短连接

    讨论Socket必讨论长连接和短连接 一.长连接和短连接的概念 1.长连接与短连接的概念:前者是整个通讯过程,客户端和服务端只用一个Socket对象,长期保持Socket的连接:后者是每次请求,都新建 ...

  9. android socket 长连接_TCP/IP,http,socket,长连接,短连接

    点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 上一篇:这300G的Java资料是我师傅当年给我的,免费分享给大家 下一篇:这200G的Java实战资料是我师傅当年教 ...

最新文章

  1. 数据库SQL2000连接测试
  2. 只开窗不镀锡_平开窗选购时有哪些误区
  3. ASP.NET Core WebApi 返回统一格式参数
  4. [YTU]_2475( C++习题 多重继承)
  5. SAP CRM和C4C message category配置
  6. 全面认识Docker和基本指令
  7. 减少Java垃圾收集开销的5条提示
  8. jsp出现The import Xxx type is not resolved...
  9. 2020年最快的dns_2020年哪里换旅行证最快取证?需要几天?
  10. hadoop学习笔记-目录
  11. ICCV 2019 | 港大提出视频显著物体检测算法MGA,大幅提升分割精度
  12. mysql json类型存储list_list存储json字符串
  13. Kubernetes 学习总结(23)—— 2022 年 Kubernetes 的 5 个趋势
  14. SpringBoot集成WebSocket案例:服务端与客户端消息互通
  15. 智能一代云平台(三十九):不同服务之间数据调用的一些思考
  16. 联通光纤猫虚拟服务器设置,联通光纤猫怎么设置 联通光纤猫设置方法【详细步骤】...
  17. 为什么说10月24日是程序员的节日?
  18. 2021年电工(初级)考试资料及电工(初级)考试总结
  19. 思科无线POC测试要包含哪些测试项
  20. 计组中原码一位乘和原码二位乘方法和注意事项

热门文章

  1. AI智慧工地视频融合平台EasyCVR视频调阅模块一键播放功能优化
  2. 使用筋斗云网络仿真平台进行灵活性区域配置仿真
  3. html语言 input,input标签(HTML中input用法详解)
  4. flask+swagger
  5. 数据可视化——绘制sin cos图形
  6. uniapp微信公众号h5开发--(微信开发回调、背景音乐自动播放、微信朋友分享、微信扫一扫)一站式踩坑
  7. 基于比原链开发Dapp(三)-Dapp-demo前端源码分析
  8. 营销场景化,让你的产品更吸引人
  9. c语言——PTA——求心里阴影面积
  10. 应届生校招套路总结——看完同学们都能进大厂