我有一个非常奇怪的间歇性问题。它发生在运行 CentOS 和 Apache/2.2.8 的共享托管服务器上,以 10 - 30 个请求/秒的速率为主要基于 PHP 的网站提供服务。3.5 GB RAM,内核 2.6.9-67.0.7ELsmp 以防万一。
发生的情况是,大约每周一次(但似乎是随机的,没有相关性)apache 将“阻塞”处理仅对一个域的请求,并且通常大多数重新测试都针对相同的 URL。我知道问题发生是因为负载穿过屋顶。(负载达到 50 或 100,如果我不停止它负载达到 200!)我发现的唯一解决方法是:killall -9 httpd; /etc/init.d/httpd restart
.
如果我在发生这种情况时检查 /server-status,输出类似于以下内容。请注意,它并不总是发生在这个站点上,但大约 75% 的时间是这个站点的罪魁祸首:编辑:这现在发生在一个完全不同的服务器上,所以它不是特定于给定的脚本。
更新:我们已将此服务器上的所有站点移至全新硬件上的全新虚拟机。更快的磁盘,更多的 RAM。问题依然存在,实际上更糟!有任何想法吗?我很乐意为正确答案提供巨额奖金,但我实际上不愿意提供一个,因为这个问题已经多年没有正确答案了。
Apache Server Status for localhost
Server Version: Apache/2.2.8 (Unix) mod_ssl/2.2.8 OpenSSL/0.9.7a DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.6 mod_perl/2.0.4 Perl/v5.8.8
Server Built: Jun 7 2008 09:35:37
Current Time: Friday, 17-Jul-2009 10:15:40 EDT
Restart Time: Friday, 03-Jul-2009 12:36:59 EDT
Parent Server Generation: …
Run Code Online (Sandbox Code Playgroud) 我有一台运行 bind-9.3.6-16.P1.el5 的 RHEL 5.7 服务器。在白天看似随机的时间点,DNS 将无法解析 LAN 上的主机大约 10 秒钟。WAN 主机总是解析。然后它恢复正常工作。我已启用日志记录并且日志中没有错误。使用此 DNS 服务器的设备总数约为 50;它不是在重负荷下。我在配置中设置了多个视图。
我使用 system-config-bind RHEL 工具来配置它。我怀疑这个工具在某个时间间隔向“刷新”或“执行维护”的配置中添加了一些内容,或者在 LAN 主机无法解析时添加了一些没有的配置部分。
// 红帽 BIND 配置工具 // // 默认初始“仅缓存”名称服务器配置 // 日志记录{ 频道“自定义”{ 系统日志本地0; 严重性动态; 打印类别是; 打印严重性是; 打印时间是; }; 类别跛脚服务器{ 风俗; }; 类别转移{ 风俗; }; 类别转移{ 风俗; }; 类别网络{ 风俗; }; 类别 dnssec { 风俗; }; 类别数据库{ 风俗; }; 类别默认{ 风俗; }; 类别调度{ 风俗; }; 类别一般{ 风俗; }; 类别客户{ 风俗; }; 类别通知{ 风俗; }; 类别解析器{ 风俗; }; 类别查询{ 风俗; }; 类别安全{ 风俗; …