当前位置: 首页 > 后端技术 > Python

使用ab和wrk对腾讯CLS进行benchmark测试

时间:2023-03-26 01:01:31 Python

使用ab和wrk对腾讯云日志服务CLS进行压力测试,并以此为例说明ab和wrk。该工具用于测试Apache服务器的性能。查看安装的apache服务器可以提供的服务能力,每秒可以处理多少请求。ab执行时常用的选项如下:optionfunction-cconcurrentnumber,一次发送的请求总数,默认是一次发送一个请求。-k在一个HTTPSession中打开keep-alive并请求多次。默认关闭。-nnumberofrequests,整个基准测试需要发送的请求数。默认为一次,默认获取的性能参数不具有代表性。-tmaximumtime,benchmark测试的最大时间,默认没有限制。-u上传文件,用于PUT操作,需要设置-T选项-T设置上传文件的Content-Type-ppostfile,指定包含post数据的文件-rab在收到socket错误时不退出安装apt-getinstallapache2-utils注意事项观察测试工具ab所在机器,被测前端机器CPU、内存、网络等不超过75%最大限制。测试过程中可能会出现端口不足导致的测试失败。需要调整内核参数以支持端口重用。在Linux平台上,需要在/etc/sysctl.conf文件中添加如下内容net.ipv4.tcp_syncookies=1net.ipv4.tcp_tw_reuse=1net。ipv4.tcp_tw_recycle=1net.ipv4.tcp_fin_timeout=30kernel.printk=7417然后运行??sudosysctl–p生效exampleab-c50-t60-n300000-k-T'application/x-protobuf'-p/tmp/post_data.txt-H'主机:ap-shanghai.cls.myqcloud.com'-H'授权:q-sign-algorithm=sha1&q-ak=AKIDMfonbuXfqpcFicn3YrzwivMelfNwFWcW&q-sign-time=1517472219;1517493819&q-1517472219;1517493819&q-header-list=content-type;host&q-url-param-list=&q-signature=4a4ed6ddc8ba1dfea73d2bee62def9dce8b0ca3c'http://ap-shanghai.cls.myqcloud.com/log/tmp/post_data.txt数据是google分析协议缓冲区格式的数据结果这是ApacheBench,版本2.3<$Revision:1796539$>版权所有1996AdamTwiss,ZeusTechnologyLtd,http://www.zeustech.net/LicensedtoTheApacheSoftwareFoundation,https://www.apache.org/Benchmarkingap-shanghai.cls.myqcloud.com(patient)Completed30000requestsCompleted60000requestsCompleted90000requestsCompleted120000requestsCompleted150000requestsCompleted210000requestsFinished223877requestsServerSoftware:openrestyServerHostname:ap-shanghai.cls.myqcloud.comServerPort:80DocumentPathtaken:Level0字节长度的文档路径:/log0字节的测试:60.001secondsCompleterequests:223877Failedrequests:0Keep-Aliverequests:223027Totaltransferred:38726471bytesTotalbodysent:108604595HTMLtransferred:0bytesRequestspersecond:3731.24[#/sec](mean)Timeperrequest:13.400[ms](mean)Time每个请求:0.268[ms](所有并发请求的平均值)传输速率:630.31[Kbytes/sec]接收1767.63kb/s发送2397.94kb/s总连接时间(毫秒)分钟mean[+/-sd]medianmaxConnect:000.5034Processing:9133.813164Waiting:8133.813164Total:9133.813164在特定时间内服务的请求百分比(ms)50%1366%75%1480%1490%1595%1798%2299%26100%164(最长请求)从测试结果可以看出,在50个并发请求的情况下,请求耗时60秒,平均每秒可以处理3731次(也就是说客户端在这种压力下看到的QPS是3731)。每个请求处理的平均延迟为13.4ms。由于启用了keep-alive,连接几乎不需要时间。99%的请求在26ms内完成,最长的请求是164ms。使用腾讯云主机测试结果如下。这是ApacheBench,版本2.3<$Revision:1706008$>版权所有1996AdamTwiss,ZeusTechnologyLtd,http://www.zeustech.net/授权给Apache软件基金会,https://www.apache.org/Benchmarkingap-shanghai.cls.myqcloud.com(bepatient)Completed30000requestsCompleted60000requestsCompleted90000requestsCompleted120000requestsCompleted150000requestsCompleted180000requestsCompleted210000requestsCompleted240000requestsCompleted270000requestsCompleted300000requestsFinished300000requestsServerSoftware:openrestyServerHostname:ap-shanghai.cls.myqcloud.comServerPort:80DocumentPath:/logDocumentLength:0bytesConcurrencyLevel:50Timetakenfortests:40.095secondsCompleterequests:300000Failedrequests:300000Failed-requests完成请求活动请求:298850总传输:51894250字节发送的正文总数:145500000HTML传输:0字节每秒请求数:7482.21[#/sec](平均值)每个请求时间:6.683[ms](平均值)每个请求时间:0.134[ms](平均值,所有并发请求)传输速率:1263.94[Kbytes/sec]接收3543.82kb/s发送4807.77kb/s总连接时间(毫秒)最小平均值[+/-sd]中位数maxConnect:000.106Processing:472.96157Waiting:472.96157Total:472.96157在一定时间内服务的请求百分比(ms)50%666%775%780%890%995%1098%1499%18100%157(最长请求)从结果可以看出QPS是非腾讯云主机的2倍,为7482wrk。Wrk是一个可以产生巨大压力的HTTP基准测试工具。安装apt-getinstalllibssl-devgitclonehttps://github.com/wg/wrk.gitcdwrkmakecpwrk/usr/sbin使用示例wrk-c50-d60-t5-s/tmp/wrk_post.luahttp://ap-shanghai.cls.myqcloud.com请求内容在/tmp/wrk_post.lua中指定,有5个线程,打开50个连接,运行60秒。/tmp/wrk_post.lua中的内容是request=function()mypath="/tmp/post_data.txt";本地文件=io.open(mypath,"r");断言(文件);本地主体=文件:读取(“*a”);读取所有内容文件:close();wrk.body=bodypath="/log"wrk.headers["Content-Type"]="application/x-protobuf"wrk.headers["Host"]="ap-shanghai.cls.myqcloud.com"wrk.headers["Authorization"]="q-sign-algorithm=sha1&q-ak=AKIDMfonbuXfqpcFicn3YrzwivMelfNwFWcW&q-sign-time=1517472219;1517493819&q-key-time=151747519718&qlist;3=content-type;host&q-url-param-list=&q-signature=4a4ed6ddc8ba1dfea73d2bee62def9dce8b0ca3c"returnwrk.format("POST",path)endresultanalysisRunning1mtest@http://ap-shanghai.cls.myqcloud.com5个线程和50个conn配置线程统计avgstdevmax+/-stdev延迟15.91ms25.52ms880.85ms98.05%req/sec745.32105.11848.0094.79%221561在1.00m,36.55mbreadrequests/sec/sec:3688888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888treffer。我们可以看到在5个并发请求的情况下,打开了50个连接,请求时间为60秒,平均每秒可以处理3688次(即客户端在这种压力下看到的QPS为3688)平均每个请求处理的延迟为15.91ms。使用腾讯云主机的测试结果如下:Running1mtest@http://ap-shanghai.cls.myqcloud.com5threadsand50connectionsThreadStatsAvgStdevMax+/-StdevLatency6.77ms3.42ms90.45ms94.82%Req/Sec1.53k119.041.74k79.27%457574requestsin1.00m,75.48MBreadRequests/sec:7623.03Transfer/sec:1.26MB从结果我们可以看到QPS是非腾讯云的两倍hosts,总结一下7623,以上是使用开源的benchmark工具来衡量从client的角度可以得到的QPS和Latency,但是从client看到的性能会受到各种因素的影响,比如请求的方式、机器的资源(CPU、内存、网络)、CLS网络状态、CLS负载等都会影响客户端看到的性能指标。需要根据实际情况排查性能瓶颈是来自CLS还是本机。参考:使用ab和wrk对OSS进行benchmark测试,记得给我点个赞!对计算机各个方向的视频课程和电子书,从入门、进阶、实用进行了认真梳理,并按照目录进行合理分类。你总能找到你需要的学习资料。你在等什么?立即关注并下载!!!念念不忘,必有回响,朋友们,请点个赞,万分感谢。我是职场亮哥,四年工作经验的YY高级软件工程师,拒绝当领导的斜杠程序员。听我说,我进步很大。如果有幸帮到你,请给我一个【点赞】,给我一个关注,如能评论鼓励,将不胜感激。职场凉阁文章列表:更多文章我的所有文章和回答均与版权保护平台合作,版权归职场凉阁所有。未经授权转载必究!