nginx长连接与短连接性能对比
上一篇文章搭建了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长连接与短连接性能对比相关推荐
- nginx做grpc负载均衡时长连接或者短连接
nginx设置响应连接是长连接或者短连接 https://blog.csdn.net/qq_21127151/article/details/106880632 nginx反向代理时保持长连接 htt ...
- nginx设置响应连接是长连接或者短连接
根据需求,需要使用nginx返回长连接和短连接响应. 配置思路 长连接: http {---------------------------keepalive_requests 100000; //这 ...
- TCP的长连接与短连接
转自:https://blog.csdn.net/weixin_39850699/article/details/109903631 1 前言 可能很多 Java 程序员对 TCP 的理解只有一个三次 ...
- 什么是HTTP长连接、短连接
什么是长连接.短连接? 长连接与短连接 所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持. 短连接 ...
- HTTP协议中的长连接和短连接(keep-alive状态)
什么是长连接 长连接还是短连接 相比于短连接,长连接更节省资源.如果每发送一条消息就要创建链路.发起握手认证.关闭链路释放资源,会损耗大量的系统资源.长连接只在首次创建时或者链路断连重连才创建链路,链 ...
- 跨进程通信,到底用长连接还是短连接
一个完整的软件系统大多数情况下是由多个进程共同协作进行的,哪怕它们在同一台服务器上.所以,进程之间如何进行高效的通信至关重要. 单个应用程序+单个数据库这套基础开发套餐我相信每个人都经历过,甚至在初期 ...
- HTTP长连接和短连接以及推送服务原理(转)
HTTP长连接和短连接以及推送服务原理 转自:http://blog.csdn.net/freewaywalker/article/details/50067757 HTTP长连接和短连接1 1. H ...
- java如何实现Socket的长连接和短连接
讨论Socket必讨论长连接和短连接 一.长连接和短连接的概念 1.长连接与短连接的概念:前者是整个通讯过程,客户端和服务端只用一个Socket对象,长期保持Socket的连接:后者是每次请求,都新建 ...
- android socket 长连接_TCP/IP,http,socket,长连接,短连接
点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 上一篇:这300G的Java资料是我师傅当年给我的,免费分享给大家 下一篇:这200G的Java实战资料是我师傅当年教 ...
最新文章
- 旋转框检测方法综述:RotateAnchor系列
- 每天一点点之vue框架开发 - 部署到线上
- 1月6日 作业 穷举
- php 获取URL 各部分参数
- math标准库函数功能汇总
- ESP8266 wifi干扰、钓鱼实现
- 17.explain_api
- 【我所认知的BIOS】— uEFI AHCI Driver(8) — Pci.Read()
- Android安全:So分析
- 【技术向】如何借助Tushare,学习量化理财(入门)
- [DCDC](DC-DC) 电感计算有难题 ? 你我一起来学习
- 你的账户配置为阻止使用计算机,Win10打开软件提示为了对电脑进行保护,已经阻止此应用解决方法...
- 如何做个人微信号营销,一个人人都能月入3000微信营销方法你真的知道吗?
- 万兆网络传输速度测试_万兆网络有多快?实测一把先!
- 4246. 【五校联考6day2】san (Standard IO)
- 7-15 福到了 c语言,7-54 福到了 (15 分)
- PicPick滚屏截图
- matlab初值微分方程,常微分方程初值问题的MATLAB解法
- c语言中文定义什么类型,typedef在c语言中是什么意思?
- 2021年压力容器作业(R)移动式压力容器充装(R2)考试题库解析
热门文章
- 应届生该“考研”还是“工作”,两者区别多大?
- shell编程基础(ctu、sde)
- 管道疏通在排管时要注意哪些事项?
- cs231n作业:assignment1 - features
- 详细介绍一下浏览器输入www.baidu.com后会发生什么
- OpenSSL v0.9.8a随机数发生器分析之三——熵采集
- EDUSOHO踩坑笔记之五:edusoho的后台目录结构
- MinIO服务部署和使用
- 三、MT8168 MIPI DSI LCD驱动指南
- 常用lr_scheduler总结