Cache

Zend 操作碼記憶體和 APC 記憶體可以在同一台伺服器上一起執行嗎?

  • January 23, 2015

我在專用伺服器上 - 在各自的虛擬目錄中執行多個門戶。一些以前載入的網站正在使用 Zend 操作碼記憶體。雖然我的新商務門戶使用基於 APC 的記憶體,但我已將此網站遷移到新伺服器。

我經常遇到內部伺服器 500 錯誤和崩潰。

我有以下配置:

  • PHP 5.4.27 和 APC 3.1.13,
  • 具有大約 4 GB 記憶體的 Centos 伺服器,
  • 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 不會對其他網站造成問題 - 所以只是想確定一下?

這是一個非常可能的崩潰原因。如果您的軟體不使用 apc 密鑰記憶體,而僅使用 opcache,那麼升級到 Zend OPcache 應該可以正常工作。如果您使用 apc 密鑰記憶體,那麼將涉及一些程式來遷移到其他一些密鑰記憶體解決方案,例如 memcached。從 php 5.4 及更高版本開始,大多數基準測試顯示使用 Zend OPcache 與 APC 有合理的加速。

我可以想像如果您嘗試同時執行兩個操作碼記憶體會發生什麼。它看起來很像這樣。

502錯誤的網關

所以你應該執行一個操作碼記憶體,並且只執行一個。

而且,這可能會讓您感到驚訝,但您需要擺脫 APC,並保留 Zend OPcache。原因是 APC 非常非常崩潰。它本身很可能是您的 PHP 崩潰的原因,就像我和許多其他人一樣。

除非您的新商務門戶真的很奇怪,否則它應該可以與 Zend OPcache 一起正常工作。

引用自:https://serverfault.com/questions/610524