Cache
Zend 操作碼記憶體和 APC 記憶體可以在同一台伺服器上一起執行嗎?
我在專用伺服器上 - 在各自的虛擬目錄中執行多個門戶。一些以前載入的網站正在使用 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 有合理的加速。
我可以想像如果您嘗試同時執行兩個操作碼記憶體會發生什麼。它看起來很像這樣。
所以你應該執行一個操作碼記憶體,並且只執行一個。
而且,這可能會讓您感到驚訝,但您需要擺脫 APC,並保留 Zend OPcache。原因是 APC 非常非常崩潰。它本身很可能是您的 PHP 崩潰的原因,就像我和許多其他人一樣。
除非您的新商務門戶真的很奇怪,否則它應該可以與 Zend OPcache 一起正常工作。