OpenCart - 中文论坛

标题: 我遇到的opencart越用越慢的问题的解决方法 [打印本页]

作者: zhoulilan    时间: 2018-6-1 12:44
标题: 我遇到的opencart越用越慢的问题的解决方法
opencart3.0.2越用越慢,最后系统运行不了了,需求的memery_limit要512M才行,最近空下来了想看看到底是哪出问题了,花了我一天时间,各种测试,最后还是解决了,给有同样问题的同学一些参考吧。

我使用了vQmod,没使用的下面的内容就可以忽略。

我的情况:

网站开通3个月,日流量有几百吧。VPS 2核2G内存,环境是LAMP。
我插件安装得比较多,刚开始使用很流畅的,到最后系统负载不起了,几个人同时访问系统就要崩溃,我开始以为是VPS的主机商过度切割CPU和内存,换了几家服务商还是这有个问题,我认为这是系统本身的问题了,1000+产品应该没什么压力,但是开一个页面CPU使用率要增加40%,开始认为是读取了什么大文件。
找了查了下发现是vQmod的问题了,vQmod下的checked.cache文件达到了50M。
看了下代码,每运行一个文件都要到读取checked.cache,对比该文件是否需要做替换检查,如果文件在checked.cache存在,就说明替换过或者没有需要替换的内容,就执行下一步;否则要检查是否有需要替换的内容,完成后文件路径写入checked.cache文件。后果是checked.cache越来越大,我使用了页面缓存和数据缓存插件,导致需要对比的文件更多,每次运行一个页面需要打开几十M的文件,然后逐条对比,CPU和内存当然占用很大。

解决办法:
删除checked.cache和mods.cache,修改vqmod.php,具体代码自己修改了,我只说思路。
我的解决办法是,把所有需要修改文件路径写入一个新的缓存文件,当vQmod需要读取和写入checked.cache的时候,先检查需要运行的页面是否在你建的这个缓存文件里面,如果存在再进行vQmod下面的代码,如果不存在直接忽略vQmod。

就是这样了,希望对大家有帮助,有问题可以交流QQ:313298749


作者: sunboy    时间: 2018-6-1 19:50
我们3.0专业版这次开发没有用到VQMOD, 用了OCMOD,商户还没有反应过系统加载慢的问题,可能是3.0的VQMOD机制问题,2.3版本的客户也未出现过你说的问题,谢谢你的反馈,我们这边也会跟踪你说的问题。




欢迎光临 OpenCart - 中文论坛 (https://bbs.opencart.cn/) Powered by Discuz! X3.2