Symfony无法为池分配内存

时间:2013-01-16 16:55:38

标签: php memory symfony

  

可能重复:
  What is causing “Unable to allocate memory for pool” in PHP?

今天我注意到了下一个错误:

ErrorException: Warning: require() [function.require]: Unable to allocate memory for pool. in /symfony/symfony/src/Symfony/Component/ClassLoader/DebugClassLoader.php line 82

这是一个奇怪的错误,如果我重新加载页面有时2个文件有此错误,其他时间都是这个错误。

它在我的JS和CSS文件中。

1 个答案:

答案 0 :(得分:19)

此错误通常与Alternative PHP Cache(APC)相关,后者是PHP的免费和开放操作码缓存。它的目标是为缓存和优化PHP中间代码提供一个免费,开放,健壮的框架。编辑/etc/php.d/apc.ini,输入:

# vi /etc/php.d/apc.ini

确保传递给mmap模块的mktemp样式file_mask正确且有效:

apc.mmap_file_mask=/tmp/apc.XXXXXX

接下来,确保每个共享内存段的大小,M / G后缀根据您的要求设置正确。就我而言,它被设置为8M:

apc.shm_size=96M

如果另一个条目需要此缓存条目插槽,则需要调整缓存条目在插槽中空闲的秒数:

apc.ttl=3600

如果另一个条目需要此缓存条目插槽,则允许用户缓存条目在插槽中空闲的秒数:

apc.user_ttl=3600

缓存条目可能保留在垃圾收集列表中的秒数。

保存并关闭文件。确保根据您的要求调整值。重新启动Apache 2 Web服务器:

# service httpd restart