使用ab和wrk对CLS进行benchmark测试
使用ab和wrk对腾讯云日志服务CLS进行压力测试,以此为例对ab和wrk进行说明
ab
ab,全称是apache benchmark,是apache官方推出的工具。该工具是用来测试Apache服务器的性能的。查看安装的apache的服务器能提供的服务能力,每秒可以处理多少次请求。ab 执行时常用的选项如下表:
选项 | 作用 |
---|
-c | 并发数, 一次发送的总请求数,默认是一次发一个请求。 |
-k | 打开keep-alive,在一个HTTP Session中请求多次。默认是关闭的。 |
-n | 请求数, 整个benchmark测试过程中需要发送的请求次数。默认是一次,默认情况下得到的性能参数没有代表性。 |
-t | 最大时间,benchmark测试最长时间,默认没有限制。 |
-u | 上传文件,PUT操作时使用,需要设置-T选项 |
-T | 设置上传文件的Content-Type |
-p | postfile,指定包含post数据的文件 |
-r | 当接收到socket错误的时候ab不退出 |
安装
注意事项
- 观察测试工具ab所在机器,以及被测试的前端机的CPU,内存,网络等都不超过最高限度的75%。
- 测试中可能出现端口不足导致的测试失败
需要调整内核参数以支持端口重用,在Linux平台下需要在/etc/sysctl.conf
文件中添加如下内容
然后运行sudo sysctl –p
生效
使用示例
/tmp/post_data.txt数据为google protocol buffer格式的数据
结果分析
从测试结果,我们可以看到
- 在50个并发请求的情况下,请求60秒,平均每秒可以处理3731次(也就是说,客户端在这种压力下,看到的QPS为3731)
- 平均每次请求处理的Latency为13.4ms
- 由于开启了keep-alive,连接几乎不耗时间
- 99%的请求都在26ms内完成,最长的请求是164ms
使用腾讯云主机测试结果如下
从结果我们可以看到,QPS是非腾讯云主机的2倍,为7482
wrk
wrk是一个用来做HTTP benchmark测试的工具。可以产生显著的压力。
安装
使用示例
请求的内容在/tmp/wrk_post.lua
中规定,有5个线程,开启的连接有50个,运行60秒
其中/tmp/wrk_post.lua
中的内容是
结果分析
从测试结果,我们可以看到
- 在5个并发请求的情况下,开启50个连接,请求60秒,平均每秒可以处理3688次(也就是说,客户端在这种压力下,看到的QPS为3688)
- 平均每次请求处理的Latency为15.91ms
使用腾讯云主机测试结果如下
从结果我们可以看到,QPS是非腾讯云主机的2倍,为7623
总结
以上就是用开源的benchmark工具来从客户端的角度来衡量所能获取的QPS以及Latency。但从客户端看到的性能会受到各种因素的影响,例如请求的方式,本机的资源(CPU,内存,网络),CLS的网络状况,CLS的负载等都会影响客户端看到的性能指标。需要根据实际情况来查看性能瓶颈是来自于CLS还是来自于本机。
参考:
- 使用ab和wrk对OSS进行benchmark测试