使用 php5-fpm、Nginx、APC、Mysql 调整 magento 的内存

使用 php5-fpm、Nginx、APC、Mysql 调整 magento 的内存

我正在使用 magento 和 php5-fpm 、Nginx、APC 和 Varnish。当 varnish 命中时,加载时间非常好。但是当 varnish 未命中时,网站加载时间太长。我通过 htop 看到 CPU 承受了很多负载,并且 Ram 和 swap 已满。

我有一台 core2duo,内存为 512mb。我认为应该存在一些内存问题。请告诉我应该如何配置 php5-fpm、nginx、APC、Mysql 的不同参数。

答案1

在调整 php-fpm 或 nginx 参数之前,您需要检查 /etc/default/varnish 文件并查看您为 varnish 分配了多少内存(考虑到您已将 varnish 配置为使用 malloc,它使用 RAM 来存储缓存数据。

您的 RAM 为 512MB,因此您需要相应地设置该值。它不应过高。

另外,请确保您的服务器没有交换,如果交换,请增加您的 RAM。

还有两件事需要检查。1. 检查 /etc/nginx/nginx.conf 中的 worker_process,如果您有一个 CPU,它应该是 1。

  1. 检查 /var/log/php-fpm.log 并确保 php-fpm 没有耗尽资源。

答案2

我不确定您是否有四个 CPU。您可以检查 cat /proc/cpuinfo 以了解情况。nginx worker_process 应设置为比机器上的处理器数量少一个。因此,如果您有两个 CPU,请将其设置为 1。

每个 worker_process 可以处理 worker_connections 中提到的连接数,默认情况下应为 1024。

因此,nginx Web 服务器可以处理的最大客户端数 = worker_process * worker_connections。另外,如果您在 nginx 中启用了保持活动连接,请记住这一点。因此,从我的角度来看,nginx 在这里没有问题。

您应该仔细阅读 php-fpm 应根据您的服务器 CPU/RAM 分叉的 max_children 和父进程。然后在 php-fpm.conf 中进行相应设置

如果您在 Varnish 中设置了 256M,这意味着您在服务器上只剩下 256M 的 RAM 可以用于其他服务器任务,这是非常少的。

您可以将 varnish 的缓存设置为文件系统而不是 RAM。这样性能不会太差,但您可以节省 RAM。

尝试一下并看看效果如何。

相关内容