1

我在 DreamHost 上运行专用服务器:四核,4GB RAM。

Linux (Debian)、Apache、PHP(使用 XCache 进行操作码缓存)、MySQL。

我查询的 URL 每次都有 18 个 MySQL 查询。

我想知道为什么当我执行“ab -n 500 -c 50 http://< url >/”时会得到以下结果:

Server Software:        Apache
Server Hostname:        <url>
Server Port:            80

Document Path:          /
Document Length:        162809 bytes

Concurrency Level:      50
Time taken for tests:   12.664 seconds
Complete requests:      500
Failed requests:        377
   (Connect: 0, Receive: 0, Length: 377, Exceptions: 0)
Write errors:           0
Non-2xx responses:      377
Total transferred:      20291876 bytes
HTML transferred:       20147278 bytes
Requests per second:    39.48 [#/sec] (mean)
Time per request:       1266.372 [ms] (mean)
Time per request:       25.327 [ms] (mean, across all concurrent requests)
Transfer rate:          1564.81 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.4      0       2
Processing:   194 1190 1617.0    248    6060
Waiting:      194  965 1263.9    248    5190
Total:        194 1190 1617.0    248    6060

Percentage of the requests served within a certain time (ms)
  50%    248
  66%    359
  75%   1555
  80%   2787
  90%   3979
  95%   4709
  98%   5427
  99%   5967
 100%   6060 (longest request)

所有 377 个失败的请求都是 503。这可能是什么原因造成的?在执行此操作时运行top,我的处理器飙升至约 24%,但并没有对它征税太多。

我的 CMS 表示,单次加载页面,加载基类需要 0.0017 秒,控制器执行时间需要 0.1711 秒,总执行时间为 0.1731 秒,使用 2.887 MB 内存。

ab -n 100 -c 10总是有 0 个失败的请求,但似乎任何有超过 25 个并发连接的东西都有一堆失败的连接。

我预计下周会同时出现大量流量,我怎样才能最好地准备我的服务器?这会保持原样吗?

编辑:来自我的 httpd-mpm.conf 文件,该文件是通过 httpd.conf 包含的

<IfModule mpm_worker_module>
    StartServers          4
    MaxClients          600
    MinSpareThreads      50
    MaxSpareThreads      150
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>
4

2 回答 2

1

如果这是 DreamHost 服务器而不是 VPS,那么它们可能正在杀死您的 php 进程,因为您已经用完了 CPU 份额。如果您的某个进程占用过多资源或传入连接过多,它将被终止,并且网络服务器将返回 503。

我不知道这些限制是什么,但Dreamhost 的某个人在这个线程中解释了

您的网站在 DH 上可以处理的内存和连接是有限的。如果您接触到许多使用过多资源的访问者,您将收到 503 错误。也许您的网站在三年后变得太大了?如果没有更多关于访问者数量和使用的软件的信息,我们只能推测。

于 2012-07-31T20:19:22.223 回答
0

这可能是由一些不同的事情引起的

  1. 您的网络服务器正在达到打开文件限制(检查 ulimit)
  2. 如果您使用 FPM,您可能会超出子限制(检查 fpm 配置)
  3. 您可能超出连接限制(检查 sysctl.conf)

您应该做的第一件事是检查 nginx 或 apache 日志。

于 2012-07-31T22:10:07.620 回答