这个问题可能有点长和具体,但我已经试图找到以下问题的结论性答案大约一个月了,我还没有找到决定性的信息。像这样具体的问题很难概括,如果我遇到类似的问题,即使特定的服务器配置与我的不同,它也会提供信息。
我的服务器是一个运行cPanel(WHM)的VPS,PHP模式是SuPHP。该服务器具有768MB的RAM,并托管大约12个网站。有些相当占用内存,而另一些则几乎不使用任何内存或cpu。
我最近为我的一位客户安装了一个Magento商店,此后一直在尝试不同的设置来提高性能。直到我安装了xCache并将PHP配置为以FCGID或DSO运行(因为xCache无法与SuPHP一起使用),才真正起到了作用。此配置将性能提高了2/3(意味着页面加载速度大约快3倍)。
唯一的挫折是几分钟后,服务器内存耗尽,我不得不硬重置它。所以现在我回到了SuPHP,一切都很好。
即使我禁用了xCache,只保留FCGID或DSO模式而不是SuPHP,服务器也会在大约30分钟内耗尽内存。因此,罪魁祸首似乎是PHP像SuPHP一样运行。
我还注意到,当我从另一个WHM定义的用户打开一个新的前端URL时,我的内存使用量会大大增加,但当我从同一WHM用户帐户打开多个URLS时,内存使用量似乎保持不变。
至此:
- 如何确保PHP+xCache保持稳定运行?还是我只需要买更多的内存
- SuPHP、DSO和FCGID在内存使用方面有什么区别?是否可以通过更改一些php.ini变量来对此进行调整
此外,我正在考虑更新其他一些服务器以使用xCache。您建议以下服务器配置什么设置和PHP模式(SuPHP、DSO或FCGI)以及xCache?
- 四核@2.4Ghz,4GB RAM专用服务器,带1个巨大的Magento商店,带cPanel和WHM
- 四核@2.4Ghz,8GB RAM服务器,约有20个大型Magento商店,带有cPanel和WHM
- 四核@2.66Ghz,8GB RAM服务器,具有100多个类似Joomla的网站,具有cPanel和WHM,还可以作为启用了mailman等功能的电子邮件服务器
由于您正在运行cPanel,因此可以轻松安装Munin(一个图形插件)。转到WHM,在搜索框中键入插件并安装Munin。
让它收集大约一周的统计数据,然后你就会对内存使用情况有一个很好的概述。
SuPHP实际上相当占用CPU,所以您需要切换。
当使用cPanel时,我们建议使用PHP-fCGI,它是一个临时替换,效果很好。我们使用Eaccellerator进行编译,因为我们测试了所有其他选项(APC/Xcache),发现它是最快的,有很大的优势。我在这里详细介绍一下http://magebase.com/magento-tutorials/magento-session-storage-which-to-choose-and-why/comment-page-1/#comment-1986年
如果你遇到OOM(内存不足)错误,那么你可能会发现你在内存上投入过多;这是两件事的结果(我们只关注PHP):
- PHP内存限制过高
- PHP进程过多
你需要给其中一个戴上帽子。对于像您这样的小型VPS,您将难以使用768MB RAM。我们从不提倡使用VPS,因为您太过受限,无法有效运行Magento。
根据您的规格,2.4Ghz、8GB RAM服务器将无法运行20个"大型"Magento站点。为了正确看待这一点,通常,(对于共享主机)我们在3.3GHz、16GB RAM服务器上最多放置8个存储。
我建议向专业人士寻求帮助,以便正确设置服务器,因为你会发现很多关于Magento优化的相互矛盾的信息。