[PHP][APC] Warning: require_once(): Unable to allocate memory for pool.

Tadashi Shigeoka ·  Sun, December 9, 2012

PHP にて「Warning: require_once(): Unable to allocate memory for pool.」とエラーログに出力されているのを見つけました。

APCのバグらしい。

PHP :: Bug #58982 :: apc produces tons of warnings “Unable to allocate memory for pool.”

/etc/php.d/apc.ini の設定を変更して対応しました。

apc.mmap_file_mask=/tmp/apc.XXXXX

↓(変更)

apc.mmap_file_mask=/dev/zero
apc.mmap_file_mask string

—enable-mmap を用いて MMAP サポートつきでコンパイルされている場合、ここで mktemp 形式のファイルマスクを指定します。mmap モジュールは、 mmap されたメモリ領域をファイルに置くか共有メモリに置くかを、 これによって判断します。 ファイルベースの mmap を使用するには、この値を /tmp/apc.XXXXXX (正確に 6 つの X)のように指定します。 POSIX 形式の shm_open/mmap を使用するには、.shm をマスクのどこかで指定します。例: /apc.shm.XXXXXX 。 また、/dev/zero を指定することで、カーネルの /dev/zero インターフェイスを使用した anonymous mmap を使用することもできます。未定義の場合は、この方式が用いられます。

[引用元]:PHP: 実行時設定 - Manual