我有一个OpenCart网站(https://www.haarhuis.shop)花了大约60秒来完全加载客户和管理部分的任何页面。通过增加memory_limit
文件中的php.ini
,清理模板文件并在MySQL数据库表中创建索引,我设法将其降低到大约15-20秒,但是15-20秒仍然是太多的等待时间。
我使用了几个开发工具来找出问题所在,但我找不到解决方案。 90%的加载时间包括'等待(TTFB)'时间。见下表:
Event When Time Sum
Redirect 0 0 0
DNS 18 0 0
Connect 18 20 20
TTFB 38 18119 18139
Response 18156 520 18659
DOM 18321 542 19201
Interactive 18793 0 -
Content 18793 36 -
服务器有3个CPU和6GB内存,应该绰绰有余。持续使用大约8%的内存,当有人加载页面时,这将高达约40%。 memory_limit
设置为6G,因此问题不在于服务器。
我调试了OpenCart源代码(从index.php开始),大部分时间(~10秒)来自最后一行start('catalog');
(或admin目录中的start('admin');
)。另外5秒来自
// VirtualQMOD
require_once('./vqmod/vqmod.php');
VQMod::bootup();
进一步调试显示startup/router
在system/engine/router.php
花费的时间最多。现在我的调试知识停在这里,所以是否有人可以帮我更快地建立网站?
可能是你没有创建正确的数据库索引,如下所述:https://www.antropy.co.uk/blog/opencart-1-5-site-search-very-slow/
或者它可能是文件/vqmod/checked.cache.php的错误变得太大,如下所述:https://forum.opencart.com/viewtopic.php?t=165423
(链接上的每个问题都有解决方案。)