zend opcode 缓存和 APC 缓存可以在同一台服务器上一起运行吗?

zend opcode 缓存和 APC 缓存可以在同一台服务器上一起运行吗?

我在专用服务器上 - 在各自的虚拟目录中运行多个门户。一些以前加载的网站正在使用 Zend 操作码缓存。而我的新商务门户使用基于 APC 的缓存,我已将此网站迁移到新服务器。

我的内部服务器经常出现 500 错误并崩溃。

我有以下配置:

  • PHP 5.4.27 和 APC 3.1.13,
  • Centos 服务器,内存约 4 GB,
  • APC 使用 php-fpm

Zend 操作码缓存配置:

Opcode Caching  Up and Running
Optimization    Enabled
Startup OK
Shared memory model mmap
Cache hits  71322
Cache misses    1049
Used memory 13544916
Free memory 42838688
Wasted memory   10725260
Cached scripts  298
Cached keys 309
Max keys    3907

APC 配置:shm_size = 2024M ..等等...

这可能是崩溃的原因吗?我需要禁用其中一个还是可以同时运行它们。我担心禁用 zend 不会对其他网站造成问题 - 所以只是想确定一下?

答案1

这是导致崩溃的一个非常可能的原因。如果您的软件不使用 apc 密钥缓存,而只使用 opcache,那么升级到 Zend OPcache 应该就可以了。如果您使用 apc 密钥缓存,那么将涉及一些编程以迁移到其他密钥缓存解决方案(如 memcached)。从 php 5.4 及更高版本开始,大多数基准测试都显示使用 Zend OPcache 比使用 APC 的速度有合理的提升。

答案2

我可以想象如果你尝试同时运行两个操作码缓存会发生什么。它看起来很像这样。

502错误的网关

因此,您应该运行一个操作码缓存,并且只运行一个。

这可能会让你感到惊讶,但你需要摆脱 APC,并保留 Zend OPcache。原因是 APC 非常容易崩溃。它独自的可能是导致你的 PHP 崩溃的原因,就像我和其他许多人一样。

除非您的新商业门户确实很奇怪,否则它应该可以与 Zend OPcache 很好地配合使用。

相关内容