WordPressの不具合の原因を切り分けようとhttpdのerror_logを見ていたら、『Unable to allocate memory for pool.』というエラーが多発していた。
結局、WordPressの不具合とは関係がなかったが、上記のエラーは解消できたので、書き留めておく。
環境は、WordPress3.5.2–ja、PHP 5.3.3、CentOS6.4だ。



エラーログ

下記のようなエラーログが多発していた。


[Mon Jul 29 19:57:25 2013] [error] [client 192.168.11.9] PHP Warning: include(): Unable to allocate memory for pool. in /var/www/html/wordpress/wp-content/plugins/headspace2/plugin.php on line 226, referer: http://junrei.dip.jp/wordpress/wp-admin/edit.php
[Mon Jul 29 19:57:25 2013] [error] [client 192.168.11.9] PHP Warning: include_once(): Unable to allocate memory for pool. in /var/www/html/wordpress/wp-content/plugins/headspace2/modules/page/tags.php on line 254, referer: http://junrei.dip.jp/wordpress/wp-admin/edit.php
[Mon Jul 29 19:57:25 2013] [error] [client 192.168.11.9] PHP Warning: include_once(): Unable to allocate memory for pool. in /var/www/html/wordpress/wp-content/plugins/headspace2/modules/page/tags.php on line 255, referer: http://junrei.dip.jp/wordpress/wp-admin/edit.php
[Mon Jul 29 19:57:32 2013] [error] [client 192.168.11.9] PHP Warning: require_once(): Unable to allocate memory for pool. in /var/www/html/wordpress/wp-admin/media-upload.php on line 16, referer: http://junrei.dip.jp/wordpress/wp-admin/post.php?post=8&action=edit
[Mon Jul 29 19:57:37 2013] [error] [client 192.168.11.9] PHP Warning: require(): Unable to allocate memory for pool. in /var/www/html/wordpress/wp-admin/admin.php on line 106, referer: http://junrei.dip.jp/wordpress/wp-admin/post.php?post=8&action=edit

原因及び対策

検索してみると、どうやらAPC関連の問題らしいことがわかった。

PECL apcのエラー Unable to allocate memory for pool. | 永田順伸のブログ
PHPな毎日 Unable to allocate memory for pool.

対策は2つ。

/etc/php.d/apc.iniの

apc.mmap_file_mask=/tmp/apc.XXXXX

apc.mmap_file_mask=/dev/zero

という方法と

apc.shm_sizeを変更するという方法だ。

『Unable to allocate memory for pool.』は、メモリを割り当てられませんよということなので、

apc.shm_size=64M

apc.shm_size=128M

と変更してみた。

結果

上記の対応でerror_logにエラーが出力されなくなった。


Categories: PHP


Leave a Reply