将 Drupal 添加到我的服务器意味着它现在存在性能问题

将 Drupal 添加到我的服务器意味着它现在存在性能问题

我的托管服务器上有一个 vb 3.8.4 论坛和一个 drupal pressflow 6.22 网站

当我将 Drupal 网站添加到服务器时,我发现服务器中存在很多性能问题

有时还会导致服务器瘫痪

以下是主机服务器规格:

  • 操作系统 CentOS Linux 5.5
  • Webmin 版本 1.560
  • 内核和 CPU Linux 2.6.18-194.26.1.el5 on x86_64 处理器信息 Intel(R) Pentium(R) Dual CPU E2160 @ 1.80GHz, 2 核
  • 实际内存总计 3.74 GB,已使用 2.35 GB 虚拟内存总计 4 GB,已使用 124 kB
  • 本地磁盘空间总计 1.76 TB,已使用 147.63 GB

以下是基本的 Apache 设置:

  • Apache MPM 预分叉
  • HostnameLookups 关闭
  • AllowOverride 无
  • 最大客户数 100
  • 每个子线程数 25
  • 启动服务器 8
  • 每个子项的最大请求数 4000
  • mod_deflate 已启用
  • mod_expires 已启用

以下是基本的 php.ini 设置:

  • 安全模式 = 开启
  • 最大执行时间 = 1200
  • 最大输入时间 = 1200
  • 内存限制 = 1500M

这是 mysql 设置:

  • 最大允许数据包数=3G
  • 最大连接数=200
  • 等待超时=30
  • 线程缓存=50
  • 连接超时=30
  • 查询缓存限制=1M
  • 交互超时=30

以下是topcpu 命令结果:

在此处输入图片描述

以下是free -miostat命令的结果:

在此处输入图片描述

命令结果如下mysqladmin -u root -p ext -ri 30 | grep tmp_disk_tables

  • | 创建临时磁盘表 | 1771 |
  • | 已创建的临时磁盘表 | 2 |
  • | 已创建的临时磁盘表 | 5 |
  • | 已创建的临时磁盘表 | 3 |
  • | 已创建的临时磁盘表 | 7 |
  • | 已创建的临时磁盘表 | 0 |

我们安装了:ffmpeg、gd 库和 zend 优化器

CPU 平均负载始终高于 3

那么有人可以帮助我吗?

如果您需要任何其他必要的信息,请在评论中询问?

答案1

您的内存限制为 3.5 GB(memory_limit = 3500M),并且可能要启动 256 台服务器(MaxClients 256)。这使您的总潜在内存消耗接近 900 GB。除非您有那么多内存,否则您很有可能在进行交换,而这正是导致性能下降的原因。

您需要大幅减少这两个数字。在支持 Drupal 的五年里,我从未见过 3.5 GB 的内存限制。如果您偶尔有需要如此高限制的任务,则应该在命令行上运行,drush而不是通过 Apache。

的输出是什么?如果没有的话(free -m会怎么样?)iostatyum install sysstat

答案2

某些进程正在占用您的 CPU。要找出原因,请执行以下操作:

Type on the terminal:
top
Press Shift+P to order the list by CPU usage.

检查哪个进程正在消耗你的 CPU 或者检查如何处理它,或者将其发布在评论中。

答案3

Drupal 是高度关系型的。它的一个常见功能是在磁盘上创建临时表。如果可以,您可以通过优化查询或将 MySQL tmpdir 放在 RAM 磁盘上来尽量减少这种情况。

运行这个:

mysqladmin -u root -p ext -ri 30 | grep tmp_disk_tables

第一个条目将告诉您自上次重启以来在磁盘上创建了多少个临时表;之后,直到您按 Ctrl-C 退出之前的 30 秒窗口内创建了多少个临时表。

就 MySQL 配置建议而言,您也没有说明您的 Drupal 表是 InnoDB 还是 MyISAM。在 Drupal 6 中,它默认为 MyISAM。

相关内容