欢迎关注Hadoop、Spark、Flink、Hive、Hbase、Flume等大数据资料分享微信公共账号:iteblog_hadoop
  1. 文章总数:1078
  2. 浏览总数:14,718,857
  3. 评论:4201
  4. 分类目录:114 个
  5. 注册用户数:7085
  6. 最后更新:2019年12月4日
过往记忆博客公众号iteblog_hadoop
欢迎关注微信公众号:
iteblog_hadoop
大数据技术博客公众号bigdata_ai
开发爱好者社区:
bigdata_ai

解决require_once(): Unable To Allocate Memory For Pool问题

最近发现服务器php-fpm日志里面大量的Unable To Allocate Memory For Pool警告,如下:

[09-Jan-2017 01:18:08] PHP Warning:  require(): Unable to allocate memory for pool. in /data/web/iteblogbooks/wp-settings.php on line 220
[09-Jan-2017 01:18:08] PHP Warning:  require(): Unable to allocate memory for pool. in /data/web/iteblogbooks/wp-settings.php on line 221
[09-Jan-2017 01:18:08] PHP Warning:  require_once(): Unable to allocate memory for pool. in /data/web/iteblogbooks/wp-includes/functions.php on line 3060
[09-Jan-2017 01:18:08] PHP Warning:  require_once(): Unable to allocate memory for pool. in /data/web/iteblogbooks/wp-content/plugins/wechat-subscribers-lite/wpwsl_core.php on line 72
[09-Jan-2017 01:18:08] PHP Warning:  require_once(): Unable to allocate memory for pool. in /data/web/iteblogbooks/wp-admin/includes/upgrade.php on line 16

我的php版本是PHP 5.3.3 (cli) (built: Feb 9 2016 10:36:17)。这个问题一般是和PHP Cache (APC)有关, APC是一个免费和开放的PHP缓存项目;其目标是提供一个用于缓存和优化PHP中间代码的自由,开放和稳健的框架。为了解决上面的问题,我们需要修改apc的相关配置,如果你是CentOS,打开/etc/php.d/apc.ini文件(如果你是Debian 或 Ubuntu Linux可以打开/etc/php5/conf.d/apc.ini),将apc.shm_size参数设置大一些,在我的默认配置里面,它的值是64M,我们将它设置为128M,如下:

 vim /etc/php.d/apc.ini

apc.shm_size=128M

然后重启php-fpm:

[root@iteblog.com ~]$ service php-fpm restart
Stopping php-fpm:                                          [  OK  ]
Starting php-fpm:                                          [  OK  ]

现在你会发现php-fpm日志里面已经没有上面那些警告信息了。

一个技巧

你是不是想看到使用APC缓存之后到底用了多少内存以及有多少查询命中了;然后根据这些情况设置 apc.ttlapc.shm_size 参数。APC为我们提供了一个页面来查看APC缓存的使用率和命中率情况,我们可以如下设置:

1、拷贝apc.php文件到你网站根目录

[root@iteblog.com ~]$ cp /usr/share/php-pecl-apc/apc.php /var/www/html

2、访问https://www.iteblog.com/apc.php页面,然后我们就可以看到如下的结果:


如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop

可以清楚地看到内存的使用情况已经命中率;而且我们还可以看到系统缓存哪些东西等。

本博客文章除特别声明,全部都是原创!
转载本文请加上:转载自过往记忆(https://www.iteblog.com/)
本文链接: 【解决require_once(): Unable To Allocate Memory For Pool问题】(https://www.iteblog.com/archives/1963.html)
喜欢 (4)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!