我最近在用 ab ( ApacheBench ) 測試一個網站時發現結果報告中一直會出現 Failed requests,而且出現的次數非常高,我原本以為是壓力測試的結果有大部分是失敗的,但看觀看其他數據卻一點也不覺得有失敗,經過一番研究後才真正理解為何會出現 Failed request 數據。
如下壓力測試的結果:
Server Software: Microsoft-IIS/7.5
Server Hostname: example.com
Server Port: 80
Document Path: /
Document Length: 35137 bytes
Concurrency Level: 1
Time taken for tests: 4.619462 seconds
Complete requests: 100
Failed requests: 99
(Connect: 0, Length: 99, Exceptions: 0)
Write errors: 0
Keep-Alive requests: 100
Total transferred: 3543782 bytes
HTML transferred: 3507782 bytes
Requests per second: 21.65 [#/sec] (mean)
Time per request: 46.195 [ms] (mean)
Time per request: 46.195 [ms] (mean, across all concurrent requests)
Transfer rate: 749.00 [Kbytes/sec] received
先分析上述數據,我取得的第一份 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 三種,分別代表的意義為:
-
Connect 無法送出要求、目標主機連接失敗、要求的過程中連線被中斷
-
Length 回應的內容長度不一致 ( 以 Content-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 的錯誤。
其他壓測結果欄位的說明可參考我另一篇文章:使用 ApacheBench 進行網站的壓力測試
转自:http://blog.miniasp.com/post/2009/10/Explain-ApacheBench-ab-for-the-Failed-request-field.aspx
分享到:
相关推荐
Apache 压力测试工具ab是一个非常实用的性能测试工具,专门用于评估Apache HTTP服务器的性能。通过模拟多个并发用户发送请求,ab可以帮助管理员了解服务器在高负载下的表现,包括处理速度、吞吐量和资源利用率等关键...
总之,ApacheBench是一个强大的工具,帮助我们了解服务器在不同条件下的表现,为优化服务器配置、提升服务性能提供了重要参考。正确理解和使用这个工具,可以有效提升Web服务的稳定性和用户体验。
"ab"(ApacheBench)就是这样一个简单而强大的命令行工具,专门用于对Web服务器进行性能测试。 **一、ab工具介绍** Apache ab(Apache Benchmark)是Apache HTTP服务器项目的一部分,它能够模拟多个并发用户向...
Apache HTTP服务器自带了一个名为`ab`(ApacheBench)的简单压力测试工具,用于评估Web服务器的性能。它能够模拟多个并发用户请求,以此来测试服务器在高负载下的响应时间和吞吐量。本教程将详细介绍如何使用`ab`...
Apache AB工具是一款强大的性能测试工具,它用于评估Web服务器的性能和稳定性。这款工具随Apache HTTP服务器一起提供,可以帮助开发者和系统管理员理解服务器在高负载条件下的表现。AB工具能够模拟多个并发用户发送...
### Apache AB性能测试工具使用教程 #### 一、引言 在现代Web开发与运维领域,性能测试是一项至关重要的任务。通过性能测试,我们可以评估Web服务在特定负载下的表现,从而确保其稳定性和可靠性。Apache AB...
Apache Bench(ab)是Apache HTTP服务器自带的一个命令行工具,用于进行HTTP服务器的压力测试和性能评估。这个工具可以帮助我们了解服务器在高并发情况下的处理能力,优化服务器配置,以及对比不同服务器软件或不同...
压力测试工具-ab工具是Apache HTTP服务器自带的一款压力测试工具,用于模拟多个并发用户对Web服务器的访问请求,以测试Web服务器的性能和稳定性。下面是关于ab工具的详细知识点: 1. ab工具的安装和配置 ab工具是...
ApacheBench,简称ab,是Apache HTTP服务器自带的一款性能测试工具,主要用来对Web服务器进行基准测试,评估其处理并发请求的能力。它可以帮助系统管理员、开发者或者网站所有者了解服务器在高负载情况下的表现,...
综上所述,ab.exe是一个强大的性能测试工具,它能够帮助开发者和系统管理员了解服务器在不同负载条件下的行为,进而做出必要的优化决策。通过对服务器性能的持续监控和测试,我们可以确保服务的稳定性和高可用性,这...
通过以上介绍,我们了解到 `ab.exe` 是一个非常实用的性能测试工具,不仅可以帮助我们了解服务器的性能瓶颈,还可以帮助我们在部署 Web 应用之前评估其可扩展性和稳定性。掌握 `ab.exe` 的使用方法对于 Web 开发者来...
ApacheBench(简称ab)是一个小巧而强大的命令行工具,用于执行HTTP负载测试,它可以帮助我们了解服务器处理请求的能力。该工具由Apache HTTP服务器项目开发,可以在Windows、Linux等操作系统上运行。 在【描述】中...
对于Web开发者来说,ab是一个非常实用的工具,它不仅能够帮助我们了解服务器在高负载下的表现,还能为我们优化服务器配置提供数据支持。 #### 二、安装与启动 在安装了Apache服务器套件后,通常可以在`bin`目录下...