用Apache的ab并发性能测试结果如何分析出最大并发数?
更新:2023-10-10 10:39:41
人气:166
来源:本站整理
A+
Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以测试nginx、lighthttp、IIS等其它Web服务器的压力。 ab命令对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会给目标服务器造成巨大的负载,因此是某些DDOS攻击之必备良药,老少皆宜。自己使用也须谨慎。否则一次上太多的负载,造成目标服务器直接因内存耗光死机,而不得不硬重启,得不偿失。
在带宽不足的情况下,最好是本机进行测试,建议使用内网的另一台或者多台服务器通过内网进行测试,这样得出的数据,准确度会高很多。远程对web服务器进行压力测试,往往效果不理想(因为网络延时过大或带宽不足)
但是如何通过结果分析出AB测试的报告,找到服务器并发的最高点在哪,并不是都处理完成没有错误就算能承载并发,而是找到可接受的并发数在多大压力下完成的时间可以被用户接受才算有效。虽然并发测试10000也能顺利完成,但时间如果花费5分钟,那用户肯定不会继续傻等,所以看下面的报告:
Percentage of the requests served within a certain time (ms)
50% 4632
66% 5381
75% 5975
80% 6317
90% 6778
95% 7562
98% 9299
99% 9355
100% 34177 (longest request)
这里的50%代表请求在4.6秒内完成了,99%的请求在9.3秒内完成,所有请求完成需要34秒。说明最后的1%的请求消耗了大量的时间,对于正常的用户响应来说,这是不行的,所有的并发请求应该控制在5秒内完成,再长的时间等待对于用户来说是不可接受的。
通过把这行结果反馈数据(longest request)控制在5秒内,我们可以得出一台服务器适当的并发能力到底是多少。
推荐的文章
随手记
- ● base64.js文件下载及使用方法说明
- ● windows利用bat微信双开、多开
- ● 百度API提交推送报{"error":401,"message":"tokenisnotvalid"}什么原因
- ● 如果在调用创建群接口时没有保存OpenConversationId,可以通过调用本接口通过chatId获取OpenConversationId
- ● Windows中使用BAT文件设置指定IP地址或自动获取IP
- ● php中如何对PHPSESSIDcookie设置httponly
- ● Navicat连接mysql出现1045错误,各种情况分析
- ● Arrayandstringoffsetaccesssyntaxwithcurlybracesisnolongersupport
- ● Apache下如何关闭Track/trace请求设置及状态验证(window下)
- ● 服务器硬件参数对并发数的影响
PHP经验分享
- ● 如何开启PHP8的JIT提升运行速度
- ● 钉钉API接口-用PHP+Curl实现获取用户信息
- ● 钉钉API接口-用PHP+Curl实现获取应用Access_Token
- ● 在PHP中使用CURL,“撩”服务器只需几行——phpcurl详细解析和常见大坑
- ● MySQLInnodb并发涉及参数说明
- ● mysql参数调优之innodb_thread_concurrency、innodb_concurrency_tickets合理的使用cpu性能
- ● PHP用fsockopen检测指定IP端口是否开启可用
- ● PHP用socket检测服务器IP端口是否开放?代码示例
- ● GatewayWorker报错:Waring:Events::onMessageisnotcallable
- ● PHP监控指定IP端口接收到的数据的实现代码