Apache-2.2

如果作為帶有 prefork 的 apache 模組執行,PHP 是否會利用 APC?

  • January 23, 2015

我已經安裝了 APC,但我沒有觀察到對性能的影響有我預期的那麼大。實際上,我不確定我是否觀察到任何好處,儘管這可能只是因為與執行我自己的程式碼相比,解釋 php 程式碼所花費的 cpu 時間可以忽略不計。

所以我想知道:可能是因為我將 PHP 作為 apache 模組執行(而不是 fastcgi)和/或因為 php 使用的是 prefork(而不是 worker)?這些中的任何一個是否會以某種方式破壞可以通過 APC 實現的性能改進?

APC 可以正常工作,mod_php因為所有 Apache 程序共享相同的 APC 記憶體。事實上,FastCGI 配置在這方面可能會出現更多問題(例如,如果使用mod_fcgid,APC 共享記憶體將無法正常工作;但是,php-fpm 應該不會有這樣的問題)。

APC 可能需要一些調整才能正常工作;例如,預設的共享記憶體大小 ( apc.shm_size=32M) 可能太小了。您可以使用apc.php隨 APC 分發的腳本來獲取記憶體的一些性能指標 — 將腳本放入由同一記憶體實例提供服務的 Web 可訪問目錄(mod_php這意味著“同一 Apache 實例上的任何虛擬主機”)並訪問它來自網路瀏覽器,而您的實際站點上存在一些負載。您的記憶體不應在正常站點載入時變滿(如果記憶體在一些罕見的管理請求中變滿也沒關係,但用於回復正常站點使用者請求的 PHP 程式碼應始終適合記憶體以獲得最佳性能)。

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