【发布时间】:2013-01-16 13:15:09
【问题描述】:
我正在运行一个用 magento 开发的电子商务网站。我在服务器上有 512mb RAM 和 2.6 core2duo。当我在我的网站上一次发送 50 个请求时,除了一些请求外,它没有响应。我也安装了清漆。我想知道我想为我的网站做的最佳设置。我已经看到 PHP-FPM 占用了太多的内存和 cpu 使用率。
【问题讨论】:
标签: magento nginx magento-1.7 php
我正在运行一个用 magento 开发的电子商务网站。我在服务器上有 512mb RAM 和 2.6 core2duo。当我在我的网站上一次发送 50 个请求时,除了一些请求外,它没有响应。我也安装了清漆。我想知道我想为我的网站做的最佳设置。我已经看到 PHP-FPM 占用了太多的内存和 cpu 使用率。
【问题讨论】:
标签: magento nginx magento-1.7 php
我们在生产机器(VCenter 虚拟机,4 核,8 GB 内存)上的 ubuntu 12 上使用 nginx 和 php5-fpm。我们的 magento 安装是大量主题和扩展的。前几天为了好玩,我在默认安装了 Magento 1.12 EE 的 VMWare 机器上从头开始安装了所有东西(我需要在一个错误上把它们叫出来)。我只是这样说,你知道我们在生产环境中有 nginx 和 php5-fpm。
您要问的是我认为每个人都在使用 nginx 和 php fpm 时遇到的问题......从中榨取更多性能。我的意思是,如果我们不试图提高网站性能,我们可以只使用 apache 和 php 吗?有很多答案、意见和案例库解决方案,但我会向您指出我用来配置我的系统的指南......
取自博客cmets:
...不过问题确实是Magento,而不是配置 服务器的。 Magento 太大太重了 环境。 Magento 托管是一项非常乏味且令人不快的任务。
它可能无法回答您的所有问题,但有很多好东西可以确保您做到...比如设置 worker_processes = 您拥有多少个核心等。
就我个人而言,我仍然遇到的一件事是,如果服务器负载变得非常高(每秒超过 5 到 10 次点击),处理器就会受到重创。我还没有完全解决这个问题,但是添加一个核心并撞到 ram 会产生很大的影响。我可能会增加内存,但目前我们的用户群没有看到任何网站性能问题。
(从另一个网站的博客文章中找到:)
Magento 大量使用磁盘子系统来实现它的许多功能。 操作。磁盘 I/O 是最大的瓶颈,仅次于 CPU (核心),以优化 Magento 性能。
这就是 Magento 在云环境中表现如此糟糕的原因 存储在与无数其他用户共享的 SAN 上并处于压力之下 在随机时间导致性能不一致。
在 RAID1+0 磁盘阵列中本地配置的 SSD(固态驱动器) 优于相同 RAID 配置中的 15.5K SAS 驱动器。
本地数据库也是 Magento 实现最佳性能的关键
远程数据库由于系统调用和网络引入了延迟 饱和。如果您必须使用远程数据库,您应该确保 您在专用 VLAN 上,并且未共享过度饱和的网络 连接,即使是最大的托管服务提供商也很常见。 在最好的网络环境中,远程数据库不会像 出于各种原因,作为本地数据库快速。
CPU 速度和 CPU 数量对于 最佳 Magento 性能。你可以了解一下它的威力 您在以下 URL 使用的高端 CPU - 如果 CPU 是 此处未列出它不被基准视为“高端” “PassMark 软件”;
http://www.cpubenchmark.net/high_end_cpus.html
基于性能的网络服务器,例如 LiteSpeed,利用多个 CPU(内核)和 MySQL 服务器一样,具有适当的配置。 使用基于性能的 Web 服务器可以显着提高您的 Apache Web 服务器软件的应用程序性能。
尝试重写或转换/编译 Magento 不是解决方案 - 它是 充其量是一个创可贴。您将无法获得任何未来的升级 (无需大量的开发时间来重写和测试 您的更改),每次升级我们都会继续看到速度 改进。永远不要执行对 Magento 的核心更改,核心 永远不要执行对 Magento 的更改 - 这会破坏 OOP Magento 采用的模型。
最后,正如我们之前所说,Magento 无法达到最优 无需对基础设施进行大量投资即可提高性能 应用程序运行。如果您正在考虑运行 Magento 并且希望在预算托管服务提供商处这样做,请了解 您根本无法也不会通过此实现最佳性能 应用。
Magento 需要资源,因为它的复杂性 - 你不能 在预算托管服务提供商上提供必要的资源作为 这种硬件系统的成本并不便宜。
【讨论】:
你应该增加内存超过512m,因为nginx + php-fpm 和varnish run 使用的内存超过了系统的内存。我进行了溢出,php 进程没有足够的内存来执行
【讨论】: