APC 是 php 中用來加速效能的,原理是 cache,其這篇是出現了 log 的錯誤訊息,針對出現的狀況進行解決
PHP message: PHP Warning: require(): Unable to allocate memory for pool. in dir” while reading response header from upstream
以 apc 來說就是利用記憶體來進行 cache,出現這樣的訊息是警告你 memory 設定的已經不夠用了,可以系統內建有提供一個範例的 apc.php 監控查看 apt cache 狀況,檔案在預設在 /usr/share/php-pecl-apc/apc.php 這裡
預設只有 apc share memory 只有 64MB,設定 php.ini 可以解決這個問題
# cache tmp file
apc.mmap_file_mask=/tmp/apc.XXXXXX
# share memory
apc.shm_size=2048m
# User cache timeout
apc.user_ttl=3600
# Garbage collection timeout
apc.gc_ttl=3600
然後重啟 php-fpm 再觀察使用情況。