我的网站出现性能问题,在分析后发现缓存似乎没有加载。所以我去了管理员那里,查看了缓存管理页面,所有缓存都被禁用了。我重新启用了它们,有时一个会显示为已启用,有时没有。
当我能够将配置缓存显示为已启用时,我可以在前端查看探查器,并看到以下行:
mage::app::init::config::load_cache
在我启用缓存之前,探查器中没有显示此行。但是,在短时间(30秒左右)后,任何启用的缓存都会再次显示为禁用,并且前端探查器不再具有此行(缓存未被使用)。
到目前为止,我无法保留缓存。我拥有apache对var/cache的所有权和777权限。文件最初是在那里创建的,但我也使用apc缓存。
配置为:
<cache>
<backend>apc</backend>
<prefix>SH_</prefix> </cache>
有人有什么想法吗?
尝试将<prefix>SH_</prefix>
设置更改为保证唯一的设置,例如数据库名称。
背景
根据您提供的信息,我怀疑另一个Magento实例正在同一台具有相同缓存前缀的机器上运行
无论何时更改设置,Magento都会将其写入数据库,然后保存缓存(请参阅Mage_Core_Model_Cache::_initOptions()
)。由于Magento实例共享相同的快速后端缓存池(因为前缀相同),其他主机也使用这些设置。一旦缓存被另一台主机清除,它们的(禁用的)设置就会写入缓存。现在,您的实例也会将缓存视为已禁用。
如果没有测试的选择,我无法提供证据,但这是我的最佳猜测。