gpt4 book ai didi

performance - 有人可以解释一下这些 ApacheBench 结果是什么意思吗?

转载 作者:行者123 更新时间:2023-12-03 14:45:12 24 4
gpt4 key购买 nike

我正在尝试弄清楚如何使用 ApacheBench 并对我的网站进行基准测试。我安装了默认站点项目(它是 ASP.NET MVC 但如果你不是 .NET 人,请不要停止阅读)。

我没有改变任何东西。添加新项目。将配置设置为 RELEASE。无需调试即可运行。 (所以它处于实时模式)。是的,这是内置的网络服务器,而不是生产级的 IIS 或 Apache 或其他任何东西。

所以这是结果:-

C:\Temp>ab -n 1000 -c 1 http://localhost:50035/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests


Server Software: ASP.NET
Server Hostname: localhost
Server Port: 50035

Document Path: /
Document Length: 1204 bytes

Concurrency Level: 1
Time taken for tests: 2.371 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 1504000 bytes
HTML transferred: 1204000 bytes
Requests per second: 421.73 [#/sec] (mean)
Time per request: 2.371 [ms] (mean)
Time per request: 2.371 [ms] (mean, across all concurrent requests)
Transfer rate: 619.41 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 1.1 0 16
Processing: 0 2 5.5 0 16
Waiting: 0 2 5.1 0 16
Total: 0 2 5.6 0 16

Percentage of the requests served within a certain time (ms)
50% 0
66% 0
75% 0
80% 0
90% 16
95% 16
98% 16
99% 16
100% 16 (longest request)

C:\Temp>

现在,我不确定我应该看什么。

首先,我在请求数之后。因此,如果我们需要处理 300 个请求/秒,那么这是说它每秒处理 421 个请求的平均值吗?

其次,增加更多并发的原因是什么?比如,如果我在 1 个并发上有 1000 次点击,那与 2 个并发上有 500 次有什么不同?是为了测试是否有任何代码阻止其他请求?

最后,有没有我应该注意的结果中遗漏的重要内容?

谢谢 :)

最佳答案

what is the reason for adding more concurrent? As in, if i have 1000 hits on 1 concurrent, how does that differ to 500 on 2 concurrent? Is it to test if there's any code that blocks other requests?



有一点,是的:您的应用程序可能正在执行并发可能带来麻烦的事情。

几个例子:
  • 一个页面试图访问一个文件——在进程中锁定它;这意味着如果另一个页面必须访问同一个文件,它必须等到第一页完成对它的处理。
  • 数据库访问完全相同:如果一页正在写入数据库,则存在某种锁定机制(基于表,或基于行,或其他,取决于您的 DBMS)

  • 测试并发为 1 就可以了……只要您的网站永远不会同时拥有多个用户;这很不现实,我希望你。

    您必须考虑在生产环境中将有多少用户同时在现场 - 并调整并发性;请记住,您的站点上同时有 5 个用户并不意味着您必须使用 ab 以 5 个并发进行测试:
  • 真实用户会在每个请求之间等待几秒钟(阅读页面的时间,点击链接,...)
  • ab 根本不等待:每次加载页面(即完成一个请求)时,它都会启动另一个请求!

  • 另外,还有两件事:
  • ab 只测试一页——真正的用户会在整个网站上导航,这可能会导致你只测试一页时不会遇到的并发问题
  • ab 只加载一个页面:它不请求外部资源(想想 CSS、图像、JS,...);这意味着当您的网站投入生产时,您将有许多其他请求,即使成本并不高。

  • 作为旁注:您可能想看看其他工具,它们可以进行更完整的测试,例如 siege , Jmeter , 或 OpenSTA :当你想衡量你所做的事情是否优化了你的页面时,ab 非常好;但是,如果您想模拟您网站的“真实”使用情况,那么这些就更加适合了。

    关于performance - 有人可以解释一下这些 ApacheBench 结果是什么意思吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1417727/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com