当对应用程序服务器运行负载测试时,1.25 个并发用户的平均结果如下。
我通过将高峰时段的访客(5 名访客)占 15 分钟(900 秒)的时间长度除以 3600,计算出 1.25 个并发用户。
平均结果:
Completed Requests: 2683
Requests Per Second: 134
Mean Latency: 14.8ms
这是一台拥有 1GB RAM 和 1 个 vCPU 的服务器。CPU 使用率不超过 30%。内存似乎未受影响。
那么每秒 134 个请求的结果究竟意味着什么?我正在尝试确定处理 X 个用户所需的服务器要求以及如何扩展,但在可扩展性方面,我很难找到有关并发用户和每秒请求之间的相关性的信息。
任何能够帮助我进一步了解如何分析这些结果的信息都将非常有帮助,谢谢。
答案1
你的计算看起来有点奇怪,也许你的应用程序非常奇特,但通常 1 个用户每秒不会执行 100 多个请求,更可能是每几秒 1 个请求 + X 个下载嵌入式资源(图像、脚本、样式、字体)的请求,最终AJAX请求。查看用户数和每秒点击量之间有什么关系?文章例如现实生活中的用例。
性能测试主要有两种类型:
- 负载测试- 当你将系统置于预期负载,即 5 个用户,看看它是否能够提供合理低的响应时间
- 压力测试- 当你试图确定系统的断点或第一个瓶颈从 1 个虚拟用户开始,逐渐增加负载,直到响应时间超过可接受的阈值或开始出现错误(以先发生者为准)
因此,首先要确保你的负载测试 100% 匹配真实用户使用真实浏览器产生的网络足迹,具体如下:饼干,标题,缓存、思考时间等等。
完成后,您可以对您的系统运行负载测试,看看它是否能满足预期的用户数量。
最后,您可以增加用户数量,直到达到预期的最大值或响应时间变得太高或您开始看到错误。
答案2
这两个测量值并不以同样的方式普遍相关。你必须估计你的网站:一个网站可能需要每个用户每天发出 2 个请求。另一个网站可能需要每个用户每分钟发出 200 多个请求。
为了进行粗略估计,请打开您最喜欢的浏览器 Web 开发工具,观察打开一个典型页面包含多少个请求,然后根据经验猜测每分钟每个独立用户打开了多少个页面。然后将其相乘。
例子:
- 高峰时段有 25 个并发用户
- 每个用户每分钟浏览 3 个页面
- 每打开一个页面有 2 个请求(1 个 html,1 个 css)(上限,缓存会减少实际数量)
- 25 * 3/分钟 * 2 个请求 = 每分钟 150 个请求
我的服务器可以完成每秒 150 个请求所以我预计不会有任何重大延迟每分钟 150。这是 60 倍的差异,因此当我接近当前用户峰值的 60 倍时,我将不得不预计加载时间会增加甚至失败。
不要指望这样的计算能给你带来超过非常对于你可以同时服务哪些类型的用户群,有一个大致的了解:
- 有些请求可能会对有限的服务器资源造成更多压力,因此计算请求数无法完全反映实际负载。如有必要,请将动态(wsgi、fcgi)请求与静态内容(css、images、js)分开比较
- 如果您根据实际用户进行计算,那么您将忽略 Google/Shodan/漏洞扫描程序/僵尸网络/等对您的服务器施加的后台压力 - 对于较小的网站,这可能是您服务器负载的很大一部分。