容量测试到底测什么——一次对话理清同时在线和并发请求

发布时间:2026/7/30 0:49:56

容量测试到底测什么——一次对话理清同时在线和并发请求
容量测试到底测什么一次对话理清同时在线和并发请求和同事讨论容量测试发现很多人把同时在线和并发请求搅在一起。这篇把这段对话记录下来帮你看清容量的本质。文章目录容量测试到底测什么一次对话理清同时在线和并发请求一、起点一个常见的判断1.1 同事的初始判断1.2 先搞清两个概念二、如果只看同时在线容量确实可以非常大2.1 无状态架构在线用户几乎不花钱2.2 那有session的系统呢三、但是在线人数越高并发请求越高3.1 统计关系3.2 容量和并发是一个连续光谱3.3 一个实际例子四、并发请求的真正瓶颈在哪4.1 一个请求进来的真实开销4.2 瓶颈清单4.3 一个并发请求的开销五、容量测试到底测什么5.1 测的是第一个被打破的瓶颈5.2 各层监控指标5.3 常见场景六、总结6.1 三个结论6.2 一句话一、起点一个常见的判断1.1 同事的初始判断同事做政务系统要搞容量测试。他的判断是容量测试应该只和服务端内存有关系吧session或者jwt也占用不了多少内存容量应该可以非常大。乍一看没毛病——一个JWT字符串几百字节一个session对象也就存点用户信息内存开销确实不大。那同时在线几万人内存也吃不了多少。容量瓶颈不该是内存吧但这个判断有一个隐藏的概念混淆。1.2 先搞清两个概念同时在线容量并发请求含义多少用户登录着、在用系统服务器同一时刻在处理多少请求对服务器的直接压力JWT几乎为零session很小每个请求吃线程连接CPU瓶颈在哪几乎没有线程池/连接池/CPU/数据库这是两个完全不同的东西。很多开发者嘴上说着系统容量要支撑一万用户实际上担心的是一万用户同时点按钮服务器扛不扛得住——前者是容量问题后者是并发问题。二、如果只看同时在线容量确实可以非常大2.1 无状态架构在线用户几乎不花钱现在的系统基本都用JWT。用户登录后拿到一个tokentoken存在客户端浏览器localStorage或Cookie。服务器不存任何东西。用户登录 → 服务器签发JWT → 返回给客户端 ↓ 用户后续请求 → 带上JWT → 服务器验签 → 处理请求 ↓ 请求结束 → 服务器什么都不留用户拿不到token时在浏览页面、填表单、看数据——这段时间对服务器来说这个用户不存在。服务器不给他分配线程、不分配连接、不分配内存。所以同时在线10万人和100人对服务器来说没区别——因为大部分在线用户此刻没有在发请求。2.2 那有session的系统呢有同事会说我们的系统用Tomcat的HttpSession每个用户在服务端存一份session这不就占内存了吗算一笔账。一个session里实际存什么数据大小估算用户信息id、姓名、账号~200字节机构信息id、名称~100字节角色列表几个角色ID~50字节权限标识如果是角色ID而非逐个权限~100字节合计不到1KB1000人在线session内存不到1MB。10000人在线也就几MB。跟服务器动辄几个G的内存比完全可以忽略。所以无论session还是JWT在线人数本身都不是瓶颈。同事最初的判断方向是对的——容量确实可以非常大。三、但是在线人数越高并发请求越高3.1 统计关系到这里同事说那容量不是问题啊随便扛。但这里有个统计关系一个系统在相关条件不变化同时在线用户数量越多并发会越高。100个人在线同一时刻可能有5个人在点按钮。10000个人在线同一时刻可能有500个人在点。在线人数上去了并发请求自然跟着上去。并发请求数 ≈ 同时在线人数 × 用户活跃率 用户活跃率 用户在单位时间内发起请求的概率不同系统的用户活跃率差异极大系统类型用户活跃率说明政务OA低大部分时间在看页面、填表几秒点一次电商日常中浏览、加购物车、搜索电商秒杀极高所有人同时点抢购按钮即时通讯高收发消息、状态同步几乎一直在请求所以不能脱离用户行为谈容量。容量不是孤立的能挂多少在线用户而是这些在线用户产生的高并发服务器扛不扛得住。3.2 容量和并发是一个连续光谱容量测试 并发测试 能挂多少在线用户 在线用户产生的高并发扛不扛得住 ←————————————————————————————→ 统计桥梁用户活跃率两者不是对立的是同一条链路上的两端。容量测试关注左端——系统能容纳多少在线用户。并发测试关注右端——这些用户产生的请求高峰能不能扛。中间的桥梁就是用户行为模式。3.3 一个实际例子某政务系统预期5000人同时在线。做容量测试时要算的不是5000个session占多少内存而是5000人在线 × 用户活跃率假设10%在同时操作 500个并发请求 ↓ Tomcat默认maxThreads200 → 不够要调大 数据库连接池默认20 → 远远不够要调大 ↓ 这才是容量测试要回答的问题瓶颈不在5000人在线瓶颈在5000人产生的500个并发请求。四、并发请求的真正瓶颈在哪4.1 一个请求进来的真实开销既然瓶颈在并发请求那一个请求到底吃服务器什么资源HTTP请求到达 ↓ Tomcat线程池分配线程maxThreads默认200 ↓ 从连接池拿数据库连接默认8~20个 ↓ 执行业务逻辑CPU计算、JWT验签、序列化 ↓ 查数据库可能等待锁、等待IO ↓ 返回响应 ↓ 释放线程和连接每一环都可能先于内存成为瓶颈。4.2 瓶颈清单瓶颈默认上限说明线程池Tomcat默认200200个并发请求就开始排队跟内存无关数据库连接池Druid/HikariCP默认8~20拿不到连接的请求要么等要么超时CPU看核数JWT验签、序列化、加解密、业务计算数据库本身几百~上千并发锁竞争、慢查询数据库比应用服务器先扛不住内存看配置session/JWT确实占不了多少4.3 一个并发请求的开销不要把一个用户在线和一个请求处理搞混资源一个在线用户空闲一个正在处理的请求线程无一个线程栈空间512KB~1MB数据库连接无一个连接连接对象会话状态内存session/JWT ~1KB结果集、序列化缓冲、临时对象CPU无JWT验签、业务计算、序列化1000个并发请求光线程栈就吃掉1GB内存。而且线程切换的CPU开销比内存更致命。所以容量可以非常大这句话对了一半——在线用户的容量确实很大但他们产生的并发请求打到的瓶颈不在内存在别的地方。五、容量测试到底测什么5.1 测的是第一个被打破的瓶颈容量测试不是应用服务器内存能挂多少session而是从用户请求到数据库返回这条链路上哪个环节最先断。不断加压观察哪个指标先异常逐渐增加在线用户数或直接加并发请求 ↓ 监控每一层的指标 ↓ 第一个先撑不住的环节 系统的真实容量上限5.2 各层监控指标层次监控什么异常表现应用服务器CPU、内存、线程数、GCCPU持续80%、频繁Full GCWeb容器活跃线程数、请求队列长度线程满、请求排队超时连接池活跃连接数、等待连接数连接耗尽、请求等待数据库活跃会话数、锁等待、慢SQL锁冲突、SQL变慢网络带宽、连接数、丢包响应时间飙升5.3 常见场景场景最先断的环节解法方向政务OA数据库连接池默认太小调大连接池上限查询密集型数据库慢SQL加索引、优化SQL、读写分离计算密集型应用服务器CPU加机器、异步化秒杀类数据库行锁队列削峰、缓存六、总结6.1 三个结论同时在线和并发请求是两个概念——在线用户的内存开销确实很小session或JWT都不到1KB可以忽略但在线人数越高并发越高——两者通过用户活跃率关联不能脱离用户行为谈容量瓶颈永远在并发请求层——线程池、连接池、CPU、数据库这些才是容量上限的真正决定因素6.2 一句话容量测试不是测能挂多少用户是测这些用户一起点的时候哪个环节先断。

相关新闻

大厂面试,自进化 agent 正在成为主流!

大厂面试,自进化 agent 正在成为主流!

2026/7/30 0:49:56

最近社区学员反馈一些Agent 面经时,发现自进化 agent正在成为主流!今天从一道字节算法二面的题开始,带你看懂大厂真正想要什么样的人才能力。 👔 面试官:“human feedback 是怎么被 agent 消化吸收的?” …

AI提示词黄金模板库(覆盖12大行业+8类任务):2024最新实战验证版,仅开放72小时

AI提示词黄金模板库(覆盖12大行业+8类任务):2024最新实战验证版,仅开放72小时

2026/7/30 0:49:56

更多请点击: https://codechina.net 第一章:AI提示词黄金模板库总览与核心设计哲学 AI提示词并非随意拼凑的语句,而是融合语言学、认知科学与工程实践的精密接口。黄金模板库的本质,是将人类意图结构化、可复用、可迭代的表达范式…

语音对话前端全链路:WebRTC 采集、流式 ASR 与 TTS 的工程落地

语音对话前端全链路:WebRTC 采集、流式 ASR 与 TTS 的工程落地

2026/7/30 0:49:56

语音对话前端全链路:WebRTC 采集、流式 ASR 与 TTS 的工程落地 一、边说边听的难题:语音 AI 助手的实时性与打断困境 去年我们给一个车载语音助手做前端,验收时产品提了一条:"用户说话中途改主意,要能立刻打断 AI…

非婚生子女抚养权公证书办理流程及注意事项

非婚生子女抚养权公证书办理流程及注意事项

2026/7/30 1:49:58

一、线下办理抚养权公证的常见痛点与难题不少非婚生育的家长,为稳定子女抚养权责、方便迁户口、出境出行、入学等事务,计划办理抚养权协议公证。传统线下办理模式存在诸多阻碍,异地奔波、预约排队、材料反复整改等问题十分普遍。线下公证处办…

C++ std::regex 正则表达式

C++ std::regex 正则表达式

2026/7/30 1:49:58

C std::regex 正则表达式技术实践文档 1. 文档概述 正则表达式是字符串匹配、检索、替换的核心工具&#xff0c;C11 正式引入标准库 <regex>&#xff0c;原生支持正则语法&#xff0c;无需依赖第三方库。本文基于全套实测代码&#xff0c;系统讲解 C 正则三大核心 API&am…

Codex++ 插件市场修复失败:`config.toml TOML parse failed` 的解决方法

Codex++ 插件市场修复失败:`config.toml TOML parse failed` 的解决方法

2026/7/30 1:49:58

Codex 插件市场修复失败&#xff1a;config.toml TOML parse failed 的解决方法摘要&#xff1a;本文详细介绍了 Codex 插件市场修复失败并提示 config.toml TOML parse failed 错误的完整解决方案。文章分析了常见的 TOML 语法错误原因&#xff08;如重复定义配置段、JSON 格式…

Diablo Edit2:解锁暗黑破坏神2角色编辑的终极力量

Diablo Edit2:解锁暗黑破坏神2角色编辑的终极力量

2026/7/30 1:49:58

Diablo Edit2&#xff1a;解锁暗黑破坏神2角色编辑的终极力量 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 你是否曾经梦想过在暗黑破坏神2中拥有完美的角色&#xff1f;无需再花费数百小时刷怪…

[第一次Python训练题]

[第一次Python训练题]

2026/7/30 1:49:58

一、训练题目&#xff1a;图一图二二、运行代码&#xff1a;# 题目一: n int(input("请输入您要打印的空心菱形层数&#xff1a;")) for i in range(n):for j in range(n - i - 1):print(" ", end"")for z in range(2 * i 1):if z 0 or z 2…

C++实现阻塞式SocketCAN通信:嵌入式Linux CAN总线同步编程指南

C++实现阻塞式SocketCAN通信:嵌入式Linux CAN总线同步编程指南

2026/7/30 1:39:58

1. 项目概述&#xff1a;为什么需要阻塞的SocketCAN通信&#xff1f;在嵌入式系统和汽车电子领域&#xff0c;CAN总线是连接控制器、传感器和执行器的神经系统。当我们在Linux环境下&#xff0c;使用C来与这个“神经系统”对话时&#xff0c;SocketCAN是官方且最强大的接口。你…

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

2026/7/28 13:30:18

目标&#xff1a;电脑作为RTSP 服务端&#xff0c;循环推送 H264/H265 视频流&#xff1b; RDK X5 通过 rtsp2display 拉流预览&#xff0c;完全不需要在开发板编译 live555。 提供两套成熟方案&#xff1a; ✅ 方案 A&#xff1a;FFmpeg&#xff08;最简单&#xff0c;优先推…

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

2026/7/30 1:17:46

一、背景与测试方案 在实际项目交付中&#xff0c;PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及&#xff1a;多源PDF的文件流合并、页面级水印渲染&#xff08;含透明度混合与图层叠加&#xff09;、输出文件体积控制。看似简单的操作…

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

2026/7/28 16:04:35

说实话&#xff0c;提到PDF拆分再压缩&#xff0c;我真是被折腾得够呛。 上个月公司年度合同归档&#xff0c;一份300多页的PDF总合同&#xff0c;需要按年份拆分成三个独立文件&#xff0c;再分别压缩到10MB以内方便邮件发送各部门确认。我心想这还不简单&#xff1f;先找个海…

粉笔直播课适合周末集中备考考生突破吗

粉笔直播课适合周末集中备考考生突破吗

2026/7/30 0:09:54

本文面向在职备考、工作日难以抽出整块时间、只能依靠周末集中复习的公考考生&#xff0c;围绕"该平台直播课是否适配周末集中备考节奏、能否支撑瓶颈突破"这一核心问题做客观拆解。文中数据来源于公开财报、官网公示价格、第三方投诉平台公开投诉及用户社区讨论&…

ThreadLocal(存取变量)实战获取当前登录的员工

ThreadLocal(存取变量)实战获取当前登录的员工

2026/7/30 0:09:54

注意AOP所应用的注解以及service方法上自定义的Log注解

INAV飞控配置终极指南:从零到稳定飞行的完整解决方案

INAV飞控配置终极指南:从零到稳定飞行的完整解决方案

2026/7/30 0:09:54

INAV飞控配置终极指南&#xff1a;从零到稳定飞行的完整解决方案 【免费下载链接】inav INAV: Navigation-enabled flight control software 项目地址: https://gitcode.com/gh_mirrors/in/inav INAV飞控配置是每个无人机爱好者必须掌握的核心技能&#xff0c;但很多新手…