讲师中心 微信公众号
AI工具推荐 视频效率加速

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

老静君_9498

老静君_9498

发布时间:2026-10-16 08:14:21

|

688人浏览过

|

来源于php中文网

原创

测试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" 初步定位异常内存段。

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

相关专题

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

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

437

2023.08.15

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

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

920

2023.09.08

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

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

2912

2023.09.19

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

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

976

2023.10.09

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

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

869

2023.10.17

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

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

454

2023.10.17

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

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

2656

2023.10.18

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

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

4952

2023.10.20

Linux 新手先学哪些命令
Linux 新手先学哪些命令

Linux新手命令专题汇集终端基础、文件目录操作、文本查看、软件安装和权限管理等入门文章,帮助按实际任务练习常用命令并建立命令行操作习惯。

0

2026.10.15

热门下载

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

精品课程

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

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn