1

我正在运行一个用 magento 开发的电子商务网站。我在服务器上有 512mb RAM 和 2.6 core2duo。当我在我的网站上一次发送 50 个请求时,除了一些请求外,它没有响应。我也安装了清漆。我想知道我想为我的网站做的最佳设置。我已经看到 PHP-FPM 占用了太多的内存和 cpu 使用率。

4

2 回答 2

4

背景

我们在生产机器(VCenter 虚拟机,4 核,8 GB 内存)上的 ubuntu 12 上使用 nginx 和 php5-fpm。我们的 magento 安装是大量主题和扩展的。前几天为了好玩,我在默认安装了 Magento 1.12 EE 的 VMWare 机器上从头开始安装了所有东西(我需要将它们称为错误)。我只是这样说,你知道我们在生产环境中有 nginx 和 php5-fpm。

你要问的是我认为每个人都在努力使用 nginx 和 php fpm ......从中获得更多性能。我的意思是,如果我们不试图提高网站性能,我们可以只使用 apache 和 php 吗?有很多答案、意见和案例库解决方案,但我会向您指出我用来配置我的系统的指南......

http://www.if-not-true-then-false.com/2011/nginx-and-php-fpm-configuration-and-optimizing-tips-and-tricks/

摘自博客评论:

...但是,问题确实是Magento,而不是服务器的配置。Magento 对于任何环境来说都太大太重了。Magento 托管确实是一项乏味且令人不快的任务。

它可能无法回答您遇到的所有问题,但有很多好事情可以确保您这样做......比如设置 worker_processes = 你有多少核心等。

就我个人而言,我仍然遇到的一件事是,如果服务器负载变得非常高(每秒超过 5 到 10 次点击),那么处理器就会受到重创。我还没有完全解决这个问题,但是添加一个核心并撞到 ram 会产生很大的影响。我可能会增加内存,但目前我们的用户群没有看到任何网站性能问题。

(从另一个网站博客文章中找到:)

Magento 在其许多操作中大量使用磁盘子系统。磁盘 I/O 是最佳 Magento 性能的最大瓶颈,仅次于 CPU(内核)。

这就是为什么 Magento 在云环境中表现如此糟糕的原因,其中存储位于与无数其他用户共享的 SAN 上,并且在随机时间承受压力,导致性能不一致。

在 RAID1+0 磁盘阵列中配置的 SSD(固态驱动器)本地性能优于相同 RAID 配置中的 15.5K SAS 驱动器。

本地数据库也是 Magento 实现最佳性能的关键

由于系统调用和网络饱和,远程数据库引入了延迟。如果您必须使用远程数据库,则应确保您位于专用 VLAN 上,并且不共享过度饱和的网络连接,即使是最大的托管服务提供商也很常见。在最好的网络环境中,由于各种原因,远程数据库不会像本地数据库那样快。

CPU 速度和 CPU 数量对于优化 Magento 性能也非常重要。您可以通过以下 URL 了解您正在使用的高端 CPU 的功能 - 如果 CPU 未在此处列出,则基准“PassMark Software”不会将其视为“高端”;

http://www.cpubenchmark.net/high_end_cpus.html

基于性能的 Web 服务器,例如 LiteSpeed,使用多个 CPU(内核),就像 MySQL 服务器一样,具有适当的配置。使用基于性能的 Web 服务器可以显着提高您的应用程序相对于 Apache Web 服务器软件的性能。

尝试重写或转换/编译 Magento 不是一个解决方案 - 它充其量只是一个创可贴。您将无法进行任何未来的升级(没有大量的开发时间来重写和测试您的更改),并且每次升级我们都会继续看到速度提升。永远不要执行对 Magento 的核心更改,永远不要执行对 Magento 的核心更改 - 这违背了 Magento 采用的 OOP 模型。

最后,正如我们之前所说,如果不对运行应用程序的基础架构进行大量投资,Magento 就无法实现最佳性能。如果您正在考虑运行 Magento 并希望在预算托管提供商上这样做,请了解您根本无法也不会使用此应用程序实现峰值性能。

Magento 由于其复杂性而需要资源 - 您无法在预算托管服务提供商处提供必要的资源,因为此类硬件系统的成本并不便宜。

于 2013-01-16T14:26:52.927 回答
0

你应该增加内存超过 512m,因为 nginx + php-fpm 和 varnish run 使用的内存超过了系统的内存。我进行了溢出,php 进程没有足够的内存来执行

于 2017-06-27T15:02:43.773 回答