我认为可能存在延迟问题。我在共享主机上安装了 magento。我知道最好在专用服务器上运行 magento,但现在还为时过早,而且它是一个很好的主机。当我打开首页并在 chrome 中的网络选项卡中检查它时,页面本身(即首先接收的主文件)的加载时间比我预期的要长得多……平均大约 3 秒。当我仔细观察时,我注意到我“发送”了几毫秒,“等待”了 2.5 秒或 3 秒,然后“接收”了大约 50 毫秒。这是延迟问题吗?
答案1
您的问题不是延迟,只是网站速度慢。可以通过快速 ping 来快速测量延迟:
ping www.myslowsite.com
您的问题是首次字节时间(TTFB),即您的服务器不能很快地生成响应,因此,您的浏览器正在等待它完成。
即,如果您创建了以下内容的 PHP 脚本:
<?php
sleep(10);
echo "Hello World!";
那么你的 TTFB 将是 10 秒。
因此,您的问题将是双重的。
- 您没有使用具有真正针对 Magento 进行优化的环境的专业 Magento 网站托管服务
- 您的 Magento 模板/扩展导致页面加载时间更长
解决方案?
编写更高效的模板,删除缓慢/庞大且写得不好的扩展并更改您的主机。
答案2
确保 magento 中的所有缓存都已打开。这样,首次加载会比较慢,但由于所有 xml/configs 都已缓存,因此加载速度会更快。
第一次加载是在清除缓存之后。Magento 在共享主机上运行起来会很慢。它需要相当大的硬件才能快速运行。
答案3
唯一可以确定您是否遇到延迟问题(我假设您说的是网络延迟)的方法是使用 wireshark 之类的工具进行跟踪。您可以在客户端上使用 SysInternals 的 ProcessMonitor 之类的工具来查看更高级别的情况,但老式的 Wireshark .CAP 文件是无可匹敌的。
至于服务器性能,您需要一些指标。我们经常听说某个应用程序需要六核 Xeon,32GB RAM 和大量 15K 主轴。然后您实际运行该猛兽时发现只需要 RAM,剩下的六个内核以 8% 的利用率运行,并且密集的磁盘 I/O 很少。只是我又在发表演说,抱歉!
因此,在您的服务器上,查看是否:
o 磁盘必须对请求进行排队 o CPU 已满 o 内存利用率正常,但未进行分页
我不是 MySQL 专家(实际上,我是 MySQL 菜鸟),但我不知道它是否有许多配置参数,就像 Oracle 一样。可能值得一看。我正在考虑将数据库页面固定在内存中以提高性能。这只有在您有空闲 RAM 的情况下才会起作用。