【问题标题】:Drupal Site Crashing Constantly - Help DebuggingDrupal 站点不断崩溃 - 帮助调试
【发布时间】:2016-07-31 06:48:52
【问题描述】:

所以我们有一个在 apache 上运行 Drupal 7.41 的站点,它经常崩溃(每周多次)。当它崩溃时,我们只需重新启动虚拟机,页面就会重新开始工作,直到下一次崩溃。我安装了 New Relic,希望它能帮助找出网站崩溃的一些原因,但我是 Drupal 的新手,我不知道从哪里开始维护它。

  1. 我已经访问了 Drupal 中的“最近的日志消息”部分,但这似乎没有帮助。自从我上次重新启动它以来,最后一个已经离线一段时间了,日志消息没有显示任何关键信息......只是“通知”:

  1. 在 New Relic 上,我可以看到 CPU 和内存恰好在站点崩溃时达到最大值,这给人的印象是这可能是错误。最初该站点有 1GB 的 RAM,当我们认为这可能是问题时,它增加到了 2GB。但是,我们看到它一直在最大化,所以我们不确定是否真的需要安装更多的 RAM 来避免这些崩溃,或者它是否只是 Apache (httpd),即使不需要它也倾向于使用那么多 RAM?

如您所见,当我重新启动服务器时,一切似乎都恢复正常了。

谁能推荐一种方法来帮助我了解可能是什么问题?仅仅是2GB内存不够吗?如果是这样,我怎么知道可能需要多少 RAM?

提前致谢!

更新#1:

我正在阅读这篇文章:http://fuseinteractive.ca/blog/drupal-performance-tuning-0,专门针对 Apache 上的一些执行技术。他们提到的第一件事是禁用您可能不需要的模块以节省内存和提高性能。在检查 Apache 配置目录(CentOS 为 /etc/httpd/conf.d)后,我发现只启用了几个模块:

我应该禁用其中任何一个吗?

他们提到的第二点是更新一些 Apache 的默认配置设置。我已经为这些设置了地雷:

Timeout 30
MaxKeepAliveRequests 100
KeepAliveTimeout 5

更新#2:MPM 设置更新为这些值:

StartServers       5
MinSpareServers    10
MaxSpareServers   20
ServerLimit      256
MaxClients       200
MaxRequestsPerChild  0

更新#3:我昨晚将 RAM 增加到 4GB,到目前为止,物理内存使用量在过去 12 小时内一直稳定在 ~2GB。这是一个周末,所以该网站的流量不多,所以让我们看看接下来几天它的表现如何。

【问题讨论】:

    标签: php apache drupal drupal-7 drupal-modules


    【解决方案1】:

    首先,我会复制环境以在非生产环境中尝试几件事。以下是我会做的一些想法:

    • 安装最新版本的 Drupal 核心
    • 查看您正在使用的贡献模块。确保您已安装最新版本。
    • 一一卸载贡献的模块,验证是否一直出现错误。尝试对已安装的主题执行相同操作。
    • 我在 cron 任务方面遇到了一些问题。您可以使用Cron Debug 模块来隔离每个模块运行的 cron 任务并尝试找出问题。
    • 只是为了放弃攻击,请使用Hacked! 模块来确认您在服务器中安装的代码与核心代码相匹配,并提供 Internet 上可用的模块。

    【讨论】:

      【解决方案2】:

      这里有两个潜在的问题:

      1. 您网站的流量/复杂性与您的硬件不匹配
      2. 您的 drupal 核心使用的资源过多

      您的硬件对于一般的 drupal 站点来说看起来不错,所以我会选择其他选项。此外,在您的图形中,您可以看到 CPU 在崩溃前 100% 使用,这意味着您的网站受到垃圾邮件攻击或某些模块导致问题。

      • 进入 admin/config/system/statistics 并启用访问日志
      • 继续 /admin/reports/pages 和 /admin/reports/visitors 并检查崩溃时每个页面/用户的点击次数。
      • 进入 admin/config/system/cron 并禁用 cron 以查看问题是否存在 正在执行一些 cron 任务。

      此外,最好的做法是使用最新的模块版本。您可以在 admin/reports/updates/update 上轻松看到这一点(您应该为此启用更新管理器模块)。确保在更新之前备份当前模块上的潜在自定义。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-07-09
        • 1970-01-01
        • 1970-01-01
        • 2014-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多