我有 Magento 设置来管理 VPS 上的 7 个不同的店面。每个店面都有一个唯一的 IP,虽然它们当然共享同一个数据库,但只有一些产品在某些站点上。大约一周前,其中一家店面变得非常萧条。我说的是 10 秒以上的加载时间。奇怪的是,所有其他站点在大约 4 秒时仍然正常嗡嗡作响。但周期性地,他们的表现也会下降。我的主人说他们没有对服务器做任何事情,他们纠正了一些问题,但即使他们也无法确定发生了什么。我减少了日志清理之间的时间(尽管我认为没有必要)。我必须补充一点,我有超过 100 个静态页面,而且我们的 htaccess 非常大(215k),因为有一些重定向和阻止的 IP。我认为这是一个magento问题而不是服务器问题,但我不明白为什么只有这一个店面。这种情况发生在其他人身上吗?或者有什么我忽略的吗?
1 回答
你需要做一些分析来找出罪魁祸首。Magento 甚至提供了一些开箱即用的选项。
首先,转到System > Configuration > Developer,然后将您当前的公共 IP 添加到 Developer Client Restriction Allowed IP's。
然后切换到相关商店的商店视图范围,并在调试部分打开分析器显示。
接下来,您需要启用分析器来收集数据。这将进一步减慢网站(所有商店)的速度,但由于它会为您提供修复它所需的数据,因此这种临时权衡将是值得的。
Magento 中集成了两个分析器。一种用于 PHP 代码,另一种用于 DB SQL 查询。
PHP Profiler
打开 Magento 根目录下的index.php文件,去掉调用行前面的注释字符
Varien_Profiler::enable();
当您在启用该调用后重新加载页面时,您应该会在每个页面的底部看到一长串分析器计时器,告诉您花费的时间以及对相关分析器部分的调用次数。
DB Profiler
打开文件app/etc/local.xml并将<profiler>
节点添加到连接配置中。
<config>
<global>
<resources>
<default_setup>
<connection>
<host><![CDATA[localhost]]></host>
<username><![CDATA[xxxx]]></username>
<password><![CDATA[xxx]]></password>
<dbname><![CDATA[xxx]]></dbname>
<active>1</active>
<!-- This is the line you need to add: -->
<profiler>true</profiler>
</connection>
</default_setup>
</resources>
</global>
</config>
刷新配置缓存后,您还应该在页面底部看到一些数据库查询统计信息和该页面请求期间最慢的查询。
希望这能让您了解是什么让商店变慢,并为您提供一些如何修复它的数据。完成后
记得关闭代码分析器、SQL 分析器和分析器输出。仅仅打开输出仍然会让分析器愉快地收集数据并减慢整个网站的速度。
编辑:分析器收集的数据可用于,例如,创建可排序的电子表格和添加自定义计时器。这可能会有所帮助,但超出了本文的范围。熟悉 Magento 的开发人员可以自行创建此类自定义模块。