php - Drupal站点不断崩溃-求助调试

标签 php apache drupal drupal-7 drupal-modules

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

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

Drupal Screenshot

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

New Relic - List of Processes

New Relic - Physical Memory

New Relic - CPU Usage

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

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

提前致谢!

更新#1:

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

Enables Modules Apache

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

他们提到的第二点是更新 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。这是一个周末,所以该网站的访问量不大,所以让我们看看接下来几天的表现如何。

enter image description here

最佳答案

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

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

关于php - Drupal站点不断崩溃-求助调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36526142/

相关文章:

java - Tomcat 7.0.26 无法启动 jsvc

android - cordova 添加平台 android 命令失败

drupal - 在新的 Drupal 8 站点上,子菜单链接没有出现?

php - "gaufrette"下无法识别的选项 "vich_uploader"

php - 删除 php 中的特定行时遇到问题

PHP流式传输远程视频文件

apache - 本地 Windows 机器的基本 Apache 命令

drupal - 每次保存节点后如何在drupal中执行操作?

git - 如何使用不在 packagist 上的 Composer 在 Drupal 8 中安装第三方库?

php - 使用 PHPSESSID 值访问 session 数据