最近,我们的网络服务器的流量增加了很多,有时它不再响应。我们更改了一些设置,为了了解我们的服务器可以处理什么,我运行了一些 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
答案2
如果运行这样的测试:
然后,根据你的网络服务器配置的糟糕程度,你每次可能会得到不同的结果。事实上,你可能想设定一个调整目标,以减少连续运行之间的差异。你真的不想在你的实时服务器上这样做。
这是否意味着服务器应该能够处理 10000 名用户?
不。用户数量与 Web 服务器可以处理的流量无关 - 限制是并发请求的数量。如果您想知道服务器可以处理多少用户,您将必须进行一些非常认真的建模,包括查看带宽和 RTT 等内容(记录和重放会话并不能提供准确的信息,尽管这比仅仅点击单个 URL 要好)。
我不确定结果是否意味着它可以处理很多事情
多少才算很多?
我们更改了一些设置
现在我们开始做一些事情可用的. 与应用更改之前相比,这些指标有何变化?