Nginx 中怎么测试高频数据推送代理在极限压力下的表现与内存

老静君_9498

老静君_9498

2026-10-16

688人浏览

原创

测试nginx高频推送代理极限表现,须聚焦长连接生命周期、内存增长趋势、系统资源触顶及连接拦截真实性;核心是用hey/vegeta/ws等工具模拟真实流式流量,交叉监控rss、active connections、error日志与ss状态,关闭proxy_buffering和access_log,排查缓冲区、文件描述符、ssl缓存等内存泄漏点。

nginx 中怎么测试高频数据推送代理在极限压力下的表现与内存

要测试 Nginx 作为高频数据推送代理(如 SSE、WebSocket 长连接或轮询接口)在极限压力下的表现与内存占用,不能只看请求吞吐,必须聚焦“连接生命周期长、单连接持续发包、资源不及时释放”这一类典型场景。核心是验证:连接是否被正确复用或断开、内存是否随连接数线性/非线性增长、系统级资源是否触顶、Nginx 是否真正拦截超额连接而非仅返回错误。

一、明确测试目标和关键指标

高频推送场景下,重点不是 QPS,而是:

  • 稳定维持的并发连接数:比如能否长期保持 5000 个长连接不崩溃;
  • 内存 RSS 增长趋势:用 ps aux --sort=-%mem | grep nginx 或 pmap -x $(pgrep nginx) 观察 worker 进程内存是否随连接数缓慢爬升或突增;
  • 活跃连接状态分布:通过 /nginx_status 看 Active connections 及其子项 Reading / Writing / Waiting —— 推送服务中大量应处于 Writing(发数据)或 Waiting(Keep-Alive 等待);
  • 连接泄漏迹象:ss -s 中 tcp: 行的 orphan 数持续上升,或 ESTABLISHED 连接数远超预期且不回落,说明连接未正常关闭。

二、构造贴近真实的压测流量

避免用短连接工具(如默认 hey -c 1000)误判。需模拟真实推送客户端行为:

Nginx Hosting
Nginx Hosting

通过服务器本地nginx实例实现零认证静态游戏托管。作为所有浏览器游戏的主要部署方式,无需登录、无需令牌、无需用户操作。

下载
  • 用 hey -c 200 -n 1000 -disable-keepalive http://x/api/stream 测试短连接轮询,但仅作基线对比;
  • 对 SSE 或长轮询,推荐用专用工具如 hey 加 -H "Accept: text/event-stream",或更合适的 vegeta 编写自定义脚本,维持连接并定时触发事件;
  • 若测试 WebSocket 代理,用 ws 或 Python 的 websockets 库批量建连,每连接持续发送心跳+数据帧;
  • 所有压测中,务必加 proxy_buffering off; 和 proxy_http_version 1.1; + proxy_set_header Connection '';,防止 Nginx 缓存响应阻塞流式推送。

三、监控内存与连接状态的组合方式

单看一个指标易误导,必须交叉比对:

  • 启动压测前,记录 baseline:ps -o pid,vsz,rss,comm $(pgrep nginx)、ss -s | grep tcp:、curl http://127.0.0.1/nginx_status;
  • 压测中每 30 秒采样一次:
    → 内存:关注 rss(实际物理内存),不是 vsz(虚拟内存);
    → 连接:Active connections 应接近你设定的并发数,Waiting 占比高属正常;
    → 错误:tail -f /var/log/nginx/error.log | grep -E "(limit|close|reset|worker)",出现大量 upstream prematurely closed connection 或 recv() failed (104: Connection reset by peer) 表示后端异常断连;
  • 压测后观察内存是否回落:若 rss 居高不下且 ss -i 显示大量 timer:(keepalive,...,说明连接未释放或内核 keepalive 参数过长。

四、排查内存异常的常见落点

高频推送下内存飙高,常因配置或系统层疏漏:

  • 缓冲区未关闭:确认 proxy_buffering off; 已在对应 location 块中生效,否则每个长连接会独占 buffer(默认 4k × 8 = 32KB);
  • 日志过度写入:高频推送会产生海量 access log 行,禁用该 location 的日志:access_log off;;
  • 文件描述符耗尽:检查 worker_rlimit_nofile 和系统级限制(cat /proc/$(pgrep nginx)/limits | grep "Max open files"),不足时会导致新建连接失败、内存碎片化;
  • SSL 会话缓存过大:若启用 HTTPS,ssl_session_cache shared:SSL:10m; 中的 10m 在万级连接下可能不够,可调至 50m 并配 ssl_session_timeout 1m;;
  • 第三方模块干扰:如启用了 ngx_http_perl_module 或某些 Lua 脚本,长连接期间变量未清理,易引发内存泄漏——压测前后用 gdb -p $(pgrep nginx) -ex "info proc mappings" -ex "quit" 初步定位异常内存段。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

nginx access proxy ssl

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

920

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2932

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

976

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

869

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

454

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2656

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4972

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

787

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习