同时使用 Opcache 和 Xcache

Posted

技术标签:

【中文标题】同时使用 Opcache 和 Xcache【英文标题】:using both Opcache and Xcache 【发布时间】:2014-08-12 19:15:45 【问题描述】:

我只是想知道同时使用 Xcache 3 和 Zend Opcache 来缓存 php 文件是否愚蠢?我知道两者都做几乎相同的工作,但不确定这是否会对性能和速度产生任何影响。

我想加快我的 php 页面加载速度,以便访问者无需等待很长时间。

对此有什么想法吗?

【问题讨论】:

您只能为访问者提供 1 个缓存文件,因此创建 2 个是不必要的开销。你需要在两者之间做一些性能测试,然后选择一个。 如果你买得起 RAM,MEMCACHE 就很棒。如果你买不起 RAM,那么我会坚持使用基于文件系统的缓存。不管你怎么看,你都会碰到磁盘上的 I/O。 仅仅因为两件事情都比没有事情更快,并不意味着同时使用它们会使其更快。想象一下,试图将两个引擎安装到一辆汽车中:首先,你必须以某种方式同时将它们连接到车轮上,让它们互相帮助,而不是简单地把所有东西都搞砸。 请注意,许多用户在 Linux 中从 tmpfs 缓存,这与在 RAM 中缓存相同,因为 tmpfs 位于 RAM 中。 RAM 缓存是常用文件的理​​想选择,但很多时候,文件系统会为您处理对 RAM 的缓存。 Opcache 与 APCu 和 memcache 配合得很好。不要混合使用 xcache 和 opcache。除非您是经验丰富的系统管理员,否则不要为 squid 或 varnish 等反向代理缓存而烦恼。你只会陷入无可救药的结中 【参考方案1】:

回答您的问题:是的,您应该同时运行 xcache 和 Zend Opcache。如果这样做,您将得到未定义的行为,最明显的是“无法重新声明 XYZ 类”致命错误。我在系统升级后发生了这种情况,包维护者在现有的 xcache 安装中激活了 Zend Opcache。

至于哪一个用于 opcaching,这取决于您的特定代码 - 我建议设置一个测试环境并启动 Apache Benchmark 或类似的工具来检查回答时间。

在默认的 wordpress 安装中,我能够获得大约 5-7 倍的加速(未缓存与 xcache),这是非常重要的。如果您真的需要更多,您需要查看 cmets 中已经提到的其他可能性,例如

使用负载平衡器和多个应用服务器 使用 memcache 或 memcached 缓存数据库查询和其他负载繁重的操作 切换到另一个数据库系统,例如 NoSQL 系统(小心后果) 将您的架构更改为使用提供交互式内容的 Web 服务的静态站点

【讨论】:

以上是关于同时使用 Opcache 和 Xcache的主要内容,如果未能解决你的问题,请参考以下文章

PHP安装使用Zend Opcache扩展

我需要 memcached 和 Opcache 吗?

Windows、XAMPP、PHP 7 和 opcache

PHP优化加速之Opcache使用总结(转载)

php 开启opcache

php.ini的opcache配置详解