上一篇文章搭建了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. 旋转框检测方法综述:RotateAnchor系列
  2. 每天一点点之vue框架开发 - 部署到线上
  3. 1月6日 作业 穷举
  4. php 获取URL 各部分参数
  5. math标准库函数功能汇总
  6. ESP8266 wifi干扰、钓鱼实现
  7. 17.explain_api
  8. 【我所认知的BIOS】— uEFI AHCI Driver(8) — Pci.Read()
  9. Android安全:So分析
  10. 【技术向】如何借助Tushare,学习量化理财(入门)
  11. [DCDC](DC-DC) 电感计算有难题 ? 你我一起来学习
  12. 你的账户配置为阻止使用计算机,Win10打开软件提示为了对电脑进行保护,已经阻止此应用解决方法...
  13. 如何做个人微信号营销,一个人人都能月入3000微信营销方法你真的知道吗?
  14. 万兆网络传输速度测试_万兆网络有多快?实测一把先!
  15. 4246. 【五校联考6day2】san (Standard IO)
  16. 7-15 福到了 c语言,7-54 福到了 (15 分)
  17. PicPick滚屏截图
  18. matlab初值微分方程,常微分方程初值问题的MATLAB解法
  19. c语言中文定义什么类型,typedef在c语言中是什么意思?
  20. 2021年压力容器作业(R)移动式压力容器充装(R2)考试题库解析

热门文章

  1. 应届生该“考研”还是“工作”,两者区别多大?
  2. shell编程基础(ctu、sde)
  3. 管道疏通在排管时要注意哪些事项?
  4. cs231n作业:assignment1 - features
  5. 详细介绍一下浏览器输入www.baidu.com后会发生什么
  6. OpenSSL v0.9.8a随机数发生器分析之三——熵采集
  7. EDUSOHO踩坑笔记之五:edusoho的后台目录结构
  8. MinIO服务部署和使用
  9. 三、MT8168 MIPI DSI LCD驱动指南
  10. 常用lr_scheduler总结