drupal 的性能问题

drupal 的性能问题

我在 Linux 服务器(4 核和 12GB RAM)上运行 drupal 7 网站,并使用 LEMP(nginx+php5-fpm+mysql)。drupal 安装启用了大量模块(所有模块都是必需的)。我还使用 apc + boost + memcache + authcache 进行缓存。缓存似乎正在工作(我看到页面从缓存中提供),并且站点的响应时间合理。我已经对运行在类似 www-1.example.com 的 URL 中的网站进行了压力测试。(www-1.example.com 指向我的网络服务器的 ip,假设为 xxxx)结果很好(最多 100 个并发用户)当我更改 dns 以使 www.example.com 也指向 xxxx 时,问题就开始了,然后我的网络服务器(所有 4 个核心)的 CPU 在短时间内达到 100%。我一直在 www.conf 文件上尝试以下参数,但没有成功:

配置 1:

pm.max_children = 100
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 20
pm.max_requests = 200

结果:CPU 使用率 100%,内存使用率低

配置最终:

pm.max_children = 300
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 20
pm.max_requests = 200

结果:CPU 使用率低,内存使用率 100%

有人能指导我找到最佳配置吗?或者知道什么原因会导致 100% CPU 使用率?如何根据服务器参数计算出可以无问题运行的最大并发使用数量?

答案1

在经典的 lemp VM 中,CPU 使用率有时是由 php 等待 mysql 执行脚本、插入和查询造成的。此外,像 Magento 这样的典型 cms,php fpm 子进程最多可以占用 300mb 的内存,因此 100 个子进程或 300 个子进程都会导致 VM 运行缓慢且频繁交换。

您应该首先降低 (我认为最多 20/25 个 php 子进程) 子进程数,然后 strace php mysql 调用和概要查询以节省执行时间。80% 的问题都在那里......

相关内容