我曾尝试使用 Apache Benchmark (ab) 来测试我的服务器。我进行了两次相同的测试 - 一次是在本地 Mac 桌面上,一次是在我租用的 Media Temple 服务器上。
编辑:
需要澄清的是,我正在测试同一个远程服务器,只是ab
在不同的位置运行。
两个结果之间差别很大。差别很大是因为 ISP 的带宽限制还是 Mac 桌面的其他限制?哪个结果更准确地反映了服务器的性能?
媒体寺庙结果
Concurrency Level: 50
Time taken for tests: 10.397 seconds
Complete requests: 7911
Failed requests: 0
Write errors: 0
Total transferred: 36355218 bytes
HTML transferred: 33767013 bytes
Requests per second: 791.07 [#/sec] (mean)
Time per request: 63.206 [ms] (mean)
Time per request: 1.264 [ms] (mean, across all concurrent requests)
Transfer rate: 3550.16 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 15 23 142.9 17 3019
Processing: 20 38 28.3 37 1093
Waiting: 20 36 23.8 36 1092
Total: 36 62 145.5 54 3063
本地 Mac 桌面结果
Concurrency Level: 50
Time taken for tests: 10.159 seconds
Complete requests: 169
Failed requests: 0
Write errors: 0
Total transferred: 790168 bytes
HTML transferred: 733924 bytes
Requests per second: 16.64 [#/sec] (mean)
Time per request: 3005.589 [ms] (mean)
Time per request: 60.112 [ms] (mean, across all concurrent requests)
Transfer rate: 75.96 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 30 2438 3568.0 379 9217
Processing: 0 95 714.8 3 9291
Waiting: 0 41 68.1 2 191
Total: 137 2533 3579.5 441 9354
答案1
本地基准测试无法为您提供有关您的网站在远程主机上的运行情况的任何指示,除非您能够设法复制远程主机上的硬件、运行的软件等。
由于您正在对两个完全不同的系统进行基准测试,因此结果存在差异是正常的。我建议您考虑远程基准测试的结果,因为这应该反映(并让您了解)您的应用可以支持多少个连接。
还,围城是一款非常棒的工具。ab 和 siege 都可以轻松编写脚本,用于自动化和基准测试结果的后期比较,但 siege 允许请求随机页面而不是某个特定 URL,从而实现更现实的基准测试。
希望这有帮助,祝你好运。
答案2
我得出的结论是,我公寓里的 Mac 台式机存在本地限制。这些限制可能是在台式机、路由器或 ISP 级别。
无论如何,我的 Mac 桌面无法在与数据中心内的另一台服务器(我们称之为服务器 IP 66.55.44.33)处于同一级别的远程服务器(我们称之为服务器 IP 88.77.66.55)上执行 ab 测试。
因此,当我使用 Mac 桌面对 66.55.44.33 进行 ab 测试时,结果显示 16 req/s。
当我使用 88.77.66.55 对 66.55.44.33 进行 ab 测试时,结果显示 800 req/s。
请注意,正在测试的服务器 (66.55.44.33) 位于亚特兰大的一个数据中心。我的本地桌面位于北卡罗来纳州罗利。第二台服务器 (88.77.66.55) 位于菲尼克斯的一个数据中心。