Apache无响应(站点停止)或崩溃,达到MaxRequestWorkers设置

这个问题是关于Apache重复崩溃,而它运行时,它没有反应,即我无法到达网站,所以我想弄清楚为什么。

Ubuntu 14.04上的Apache 2.4.7服务的My Owncloud站点无法访问。 为了检查什么是错的,我跑了apachectl -S:

~$ sudo apachectl -S AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message VirtualHost configuration: *:443 oc.benopp.org (/etc/apache2/sites-enabled/000-default.conf:1) *:80 127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:18) ServerRoot: "/etc/apache2" Main DocumentRoot: "/var/www" Main ErrorLog: "/var/log/apache2/error.log" Mutex mpm-accept: using_defaults Mutex watchdog-callback: using_defaults Mutex rewrite-map: using_defaults Mutex ssl-stapling: using_defaults Mutex ssl-cache: using_defaults Mutex default: dir="/var/lock/apache2" mechanism=fcntl PidFile: "/var/run/apache2/apache2.pid" Define: DUMP_VHOSTS Define: DUMP_RUN_CFG User: name="www-data" id=33 Group: name="www-data" id=33 

这似乎并不能解释这个问题。 error.log说:

 [Wed Jan 07 19:07:13.384687 2015] [ssl:warn] [pid 1699] AH01906: RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?) [Wed Jan 07 19:07:13.389319 2015] [mpm_prefork:notice] [pid 1699] AH00163: Apache/2.4.7 (Ubuntu) mod_gnutls/0.5.10 PHP/5.5.9-1ubuntu4.5 OpenSSL/1.0.1f configured -- resuming normal operations [Wed Jan 07 19:07:13.389359 2015] [core:notice] [pid 1699] AH00094: Command line: '/usr/sbin/apache2' [Wed Jan 07 19:08:01.788631 2015] [mpm_prefork:error] [pid 1699] AH00161: server reached MaxRequestWorkers setting, consider raising the MaxRequestWorkers setting 

我不明白如何才能使用该网站达到最大请求设置。 我是否正确地认为虽然我是唯一一个试图访问Owncloud下载某些文件或更改设置的应用程序,但是这绝不会导致这么多的请求?

仔细看,我激活了mod_status 。 不幸的是,我不知道该读出什么,因为我只是教自己如何设置Apache来运行我的个人云,而我是新手。 在这里发布服务器状态页面读取内容似乎有点长,所以我做了一个粘贴: http : //pastie.org/private/aj7zduzhrt8sayjb4hncg

所以,所有的进程都是“发送回复”,除了我不知道是什么,因为我没有发送任何请求,而且服务器现在实际上已经从互联网断开。 在文档中,解释了如何查找导致过度工作负载的问题,但是我很难让Top向我展示一些我可以使用的东西。 它看起来虽然CPU负载真的不是这样,没有看到高负载。 你能从这个读数中知道问题是什么吗?

编辑2:另一个崩溃发生在几个小时前,这是从error.log似乎有关的一部分:

文件开头:

 ProblemType: Crash Architecture: amd64 CrashCounter: 1 Date: Tue Jan 6 13:50:05 2015 DistroRelease: Ubuntu 14.04 ExecutablePath: /usr/sbin/apache2 ExecutableTimestamp: 1406039884 ProcCmdline: /usr/sbin/apache2 -k start ProcCwd: /etc/apache2 ProcEnviron: PATH=(custom, no user) LANG=C ProcMaps: 7fd2a4000000-7fd2a8000000 rw-s 00000000 00:04 12964 /dev/zero (deleted) 7fd2a8000000-7fd2a8021000 rw-p 00000000 00:00 0 7fd2a8021000-7fd2ac000000 ---p 00000000 00:00 0 7fd2aced8000-7fd2acedd000 r-xp 00000000 08:01 266060 /lib/x86_64-linux-gnu/libnss_dns-2.19.so 7fd2acedd000-7fd2ad0dc000 ---p 00005000 08:01 266060 /lib/x86_64-linux-gnu/libnss_dns-2.19.so 7fd2ad0dc000-7fd2ad0dd000 r--p 00004000 08:01 266060 /lib/x86_64-linux-gnu/libnss_dns-2.19.so 

依此类推,直到文件结束为止:

 ProcStatus: Name: apache2 State: R (running) Tgid: 2807 Ngid: 0 Pid: 2807 PPid: 1838 TracerPid: 0 Uid: 33 33 33 33 Gid: 33 33 33 33 FDSize: 64 Groups: 33 VmPeak: 525052 kB VmSize: 524944 kB VmLck: 0 kB VmPin: 0 kB VmHWM: 23680 kB VmRSS: 23680 kB VmData: 85112 kB VmStk: 136 kB VmExe: 592 kB VmLib: 74868 kB VmPTE: 712 kB VmSwap: 0 kB Threads: 1 SigQ: 1/29106 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000004000 SigIgn: 0000000001001000 SigCgt: 000000018c0042eb CapInh: 0000000000000000 CapPrm: 0000000000000000 CapEff: 0000000000000000 CapBnd: 0000001fffffffff Seccomp: 0 Cpus_allowed: 3 Cpus_allowed_list: 0-1 Mems_allowed: 00000000,00000001 Mems_allowed_list: 0 voluntary_ctxt_switches: 21 nonvoluntary_ctxt_switches: 34 Signal: 11 Uname: Linux 3.13.0-43-generic x86_64 UserGroups: CoreDump: base64 

那么我删除了CoreDump。

这听起来像启动板上发布的以下错误: https : //bugs.launchpad.net/ubuntu/+source/php-apcu/+bug/1422484

简短的版本是,似乎PHP 5的APC用户caching存在问题,至less是与Ubuntu 14.04一起打包的版本。

修复似乎是清除php5-apcu包,然后重新启动Apache:

 sudo apt-get purge php5-apcu sudo service apache2 restart 

我刚刚这样做,所以我不确定这是否真的能够解决这个问题。 我也在错误日志中看到APC错误。

如果你find一个不同的解决scheme,我很乐意听到它。