BATCACHE/Memcated页面缓存组合中的APC对象缓存?

时间:2013-06-30 作者:ivavid

在岗位上WordPress Caching Comparisons Part 2 Matt Martz比较了不同的缓存设置,其中包括APC object caching 连同Batcache 页面缓存。在他的帖子中,这种组合似乎是设置复杂性和效率之间的最佳权衡。他没有提到memcached,所以我不确定它是否被使用过。阅读马克·贾奎斯的帖子APC Object Cache Backend for WordPress 在我看来,他的插件就像一个嵌入式替换后端,用来代替memcached,这就是Batcache installation instructions 表示要使用。这也是我在这些插件的实验中的工作原理。一、 e.使用APC或memcached后端,但不能同时使用或组合使用。

然而,从Iliya Polironov的High-performance WordPress 视频(这是我开始研究缓存的地方)给我的印象是,APC对象缓存可以用于操作码缓存,与Batchache/memchached结合用于整页缓存,以获得更好的结果。(Batchache的讨论在视频的最后)这有可能吗,会不会有任何好处,或者我只是感到困惑?

在我的例子中,我正在寻找由单个Web服务器(nginx)提供服务的多个虚拟单WordPress服务器(即非多站点)的最佳解决方案。这在固态介质(Raspberry Pi/SD卡)上运行,因此最好将缓存保留在内存中。我拥有对系统的完全访问权限,并安装了apc、memcache和memcached extensions。

edit: 通过阅读Batcache源代码,我的理解是,Batcache使用object-cache.php, 因此,它是APC或memcached对象缓存,由各自的后端插件专用。

此外,我在his post 启发

1 个回复
SO网友:Wyck

Memcached的基本经验法则是:如果要运行多个服务器或连接到同一资产的多个数据库,请使用它。

另一种更严厉的说法是:如果你不知道Memcached是什么,你可能不需要它

由于您只有一台服务器(可能还有一个数据库),因此无法利用几个Memcached功能。

Memcached(内存缓存):Distributed 内存对象缓存

APC:字节码优化

您可以使用APC和Memcached的组合,也可以将APC与Batchache一起使用,而不使用Memcached或各种插件组合,所以这有点混乱。

To clarify Batcache

Batcache能够支持Memcached,但如果没有安装Memcached,它仍将使用配置中定义的WordPress对象缓存。php使用define(\'WP_CACHE\', true); 因此,APC将利用这一点。

除了通过Memcached支持复杂的服务器设置外,Batcache的一个优点是它不写入文件,这就是为什么像WordPress这样的服务。com使用它。想象一下,如果他们必须对所有站点进行静态缓存,那么将有数十亿个文件,无法通过文件I/O进行管理。

虽然Batchache相当简单,但执行可能很复杂,可以通过以下注释进行配置:http://plugins.trac.wordpress.org/browser/batcache/trunk/advanced-cache.php

To clarify Memcached

Memcached实际上是针对多个服务器的,因此它们可以智能地共享和使用内存,本质上它们将共享一个虚拟内存池。每个节点都可以利用其他节点的内存(节点不必是传统的web服务器)。Memcache不关心您使用的语言,因为它支持大多数语言。http://memcached.org/about

To clarify APC

简单来说,APC是单服务器和PHP。它将所有基于PHP(字节码)的编译存储在RAM中。

For a single server

APC+Mark Jaquith的Dropin+静态文件缓存插件(超级缓存、w3 total等)将快速获得结果。换言之,SAPC+静态缓存在单个服务器上的速度要比justMemcached和/或非静态缓存快得多。当然,您可以在一台服务器上组合它们,我从未尝试过,很怀疑是否会有任何改进。在一台已经有APC的服务器上使用Memcached就像是试图将一辆车从前面拖到后面。

另一种选择是使用APC+Batchache而不是静态cachingplugin,这很可能会给您相同的结果,只是确保您有足够的ram。这是一个很好的解决方案,但它需要更多的服务器监控(imo),而不仅仅是编写静态文件,因为服务器仍然是挑剔的野兽。

如果在执行上述操作后,您的站点仍然存在问题,那么您需要将硬件提升到一个新的水平,或者开始考虑使用多个服务器进行更复杂的设置。

还要记住,这不仅仅是关于一般站点的“速度”,而是关于速度+并发性。

不要为了它而优化。。除非有需求,否则优化将一事无成。

Notes:

每个服务器的设置都是不同的,缓存直接与CPU、RAM、实际代码和配置的性能联系在一起,因此结果会有所不同。。。APC和Memcached都有很多配置选项。

需要注意的是https://github.com/zendtech/ZendOptimizerPlus 可能最终会取代APC。

另外,在上线之前,在dev服务器上测试APC,它通常需要修改配置,否则服务器可能会崩溃。

结束