分析网络服务器基准测试

分析网络服务器基准测试

最近,我们的网络服务器的流量增加了很多,有时它不再响应。我们更改了一些设置,为了了解我们的服务器可以处理什么,我运行了一些 ab 测试。

我们将 my.cnf 更改为 my-large.cnf(http://fts.ifac.cnr.it/cgi-bin/dwww/usr/share/doc/mysql-server-5.0/examples/my-large.cnf.gz)并将最大连接数设置为 350

问题是我不确定结果是否意味着它可以处理很多(1000 个同时用户)?

如果运行这样的测试:

 ab -n 10000 -c 100 www.mysite.com 

我得到了这样的结果

Server Software:        Apache/2
Server Hostname:        www.mysite.com
Server Port:            80

Document Path:          /
Document Length:        29311 bytes

Concurrency Level:      100
Time taken for tests:   704.062 seconds
Complete requests:      10000
Failed requests:        1634
   (Connect: 0, Receive: 0, Length: 1634, Exceptions: 0)
Write errors:           0
Non-2xx responses:      1634
Total transferred:      255952902 bytes
HTML transferred:       251613362 bytes
Requests per second:    14.20 [#/sec] (mean)
Time per request:       7040.615 [ms] (mean)
Time per request:       70.406 [ms] (mean, across all concurrent requests)
Transfer rate:          355.02 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       11   16   3.1     15     105
Processing:    91 6998 16245.3   5384  237924
Waiting:       90 6814 15642.3   5296  237923
Total:        105 7014 16245.3   5399  237939

这是否意味着服务器应该能够处理 10000 名用户?

我们的服务器规格:

  • 英特尔至强四核
  • 1GB 专用 RAM
  • 2GB 交换内存

我认为这应该能够处理一些流量?

答案1

ab如果您需要执行简单的测试,它是一个很好的工具。

如果您的网站是静态的并且只包含一个 html 文档,那么您可以依赖ab但我不认为事实如此。

如果您的网站是动态的,它包含文件 css、javascript、图像、ajax、标头缓存等...因此ab无法正确模拟用户和您的基准不相关

如何进行相关基准测试?

您可以使用测试仪例如。Jmeter提供代理它可以记录您浏览器的流量。然后您可以播放 X 次来模拟一定数量的用户。

当然也有很多商业解决方案(设备、云等)

答案2

如果运行这样的测试:

然后,根据你的网络服务器配置的糟糕程度,你每次可能会得到不同的结果。事实上,你可能想设定一个调整目标,以减少连续运行之间的差异。你真的不想在你的实时服务器上这样做。

这是否意味着服务器应该能够处理 10000 名用户?

不。用户数量与 Web 服务器可以处理的流量无关 - 限制是并发请求的数量。如果您想知道服务器可以处理多少用户,您将必须进行一些非常认真的建模,包括查看带宽和 RTT 等内容(记录和重放会话并不能提供准确的信息,尽管这比仅仅点击单个 URL 要好)。

我不确定结果是否意味着它可以处理很多事情

多少才算很多?

我们更改了一些设置

现在我们开始做一些事情可用的. 与应用更改之前相比,这些指标有何变化?

相关内容