我目前正在梳理Magento Performance白皮书,以便在假日季节开始之前优化我们的Magento体验。 2个月我们遇到了大量的交通高峰,并希望确保我们顺利运行。我们正在使用Magento EE 1.8,默认情况下使用全页缓存。除了FPC,我还启用了GZIP,Cache-Control标头,并完成了白皮书推荐的所有mySQL调整调整。我们还将使用CDN来提供静态内容。
我们目前正在使用文件系统缓存,我很困惑APC会落入这个堆栈的位置,如果有的话。我们使用FPC时是否值得安装APC?我知道Magento缓存和APC缓存是两个不同的东西,所以如果我编辑使Magento缓存失效并需要刷新的产品,我是否每次都要刷新APC缓存?任何帮助表示赞赏!
答案 0 :(得分:2)
APC是面向PHP本身的操作码缓存,FPC更适合缓存面向Magento本身的内容。在进行任何产品更改时,您不需要刷新APC。只有FPC需要在后端类型的编辑时刷新,Magento通常会通知您它是否被无效。如果修改或更改了PHP或模板(.phtml)文件,则只需要刷新APC。请记住,APC以不同的方式存储CLI和Web的缓存,因此对自定义内部URL采用某种类型的wget或cURL请求会清除缓存。
例如
system('wget --spider --quiet http://localhost/apc/clear_apc_cache.php');
此外,我强烈建议在堆栈前设置Varnish反向代理服务器,因为它在高流量系统上的性能非常高。您还可以使用memcache来保存结帐时的数据库负载或Varnish或FPC之外的动态请求。
Getting Varnish To Work on Magento
希望这有帮助!
答案 1 :(得分:1)
您可以将APC用于2级缓存(请参阅_getBackendOptions()
中的Mage_Core_Model_Cache
)。虽然APC不是最好的选择。
根据您是运行单个还是多个Web节点,您可以选择memcache(多个webnodes)或tempfs(单个webnode)。使用Magento中配置的memcache,您仍然可以使用APC缓存操作码。
编辑产品后,您只需点击缓存管理管理员中的“刷新缓存存储”即可使memcache中的所有条目无效。 APC不需要任何冲洗。
您目前在哪里存储会话?如果它也在磁盘上,您可能还想将它们迁移到tempfs或memcache。但是,在使用memcache时要小心:对于会话使用不同的端口/池而不是用于FPC的端口/池。否则,当刷新内存缓存,注销所有用户并在进程中刷新他们的购物车时,您将刷新所有会话。