我最近在用ab ( ApacheBench ) 测试一个网站时发现结果报告中一直会出现Failed requests,而且出现的次数非常高,我原本以为是压力测试的结果有大部分是失败的,但看观看其他数据却一点也不觉得有失败,经过一番研究后才真正理解为何会出现Failed request 数据。 如下压力测试的结果:
先分析上述数据,我取得的第一份HTML 文件得到的大小( Document Length ) 为35,137 bytes,我总共发出要求共100 次( Complete requests ),总HTML 数据传输量( HTML transferred ) 为3,507,782 bytes 感觉非常合理,实际的传输量大约是单一文件的100倍,所以我研判这100个Request的确有正确送出,但为何Failed requests会出现有99次的错误呢? 只要出现Failed requests就会多出现一行要求失败的各原因的数据统计,分别有Connect, Length,与Exception三种,分别代表的意义为:
而从上述说明就可以很明显看出所有的Failed requests都落在Length这个类别上,原来这是因为受测网站的首页是动态的内容,当第一次发出HTTP request与后续发出的HTTP request所得到回应的HTML长度都是不同大小的(每次回应的Content-Length大小不一致),才会引发Failed requests的Length问题的失败,因此这类Length不一致的失败在进行「动态网页」压力测试时是合理的,可以不予理会。 这里的Length是以"第1次"取得的Content-Length为主,如果第2次以后的HTTP Request所得到的HTTP Response Header得到的Content-Length与第1次取得的长度不一致,就会得到Length的错误。 from:http://mib168.iteye.com/blog/1299990 |
|Archiver|手机版|小黑屋|创星网络
( 苏ICP备11027519号 )
|网站地图
GMT+8, 2025-2-23 07:53 , Processed in 0.057765 second(s), 16 queries .
Powered by Discuz! X3
© 2001-2013 Comsenz Inc.