php无法释放缓冲内存,缓存 - 在PHP中导致“无法为池分配内存”的原因是什么?...

使用TTL为0意味着APC将在内存不足时刷新所有缓存。 该错误不再出现,但它使APC的效率低得多。 没有风险,没有麻烦,“我不想做我的工作”的决定。 APC并不意味着以这种方式使用。 您应该选择足够高的TTL,以便访问最多的页面不会过期。 最好是提供足够的内存,以便APC不需要刷新缓存。

请阅读手册以了解如何使用ttl:[http://www.php.net/manual/en/apc.configuration.php#ini.apc.ttl]

解决方案是增加分配给APC的内存。通过增加apc.shm_size来做到这一点。

如果编译APC以使用共享段存储器,您将受到操作系统的限制。 键入此命令以查看每个段的系统限制:

sysctl -a | grep -E "shmall|shmmax"

要分配更多内存,您必须使用参数apc.shm段增加段数。

如果APC正在使用mmap内存,那么你没有限制。 内存量仍由相同的选项apc.shm_size定义。

如果服务器上没有足够的内存,则使用filters选项来防止缓存较少访问的php文件。

但永远不要使用0的TTL。

正如c33s所说,使用apc.php来检查你的配置。 将文件从apc包复制到web文件夹并将浏览器指向它。 您将看到真正分配的内容及其使用方式。 图表必须在数小时后保持稳定,如果它们在每次刷新时完全更改,则表示您的设置错误(APC正在刷新所有内容)。 分配比APC真正用作安全边际的公羊多20%,并定期检查。

仅允许32MB的默认值非常低。 PHP是在服务器为64MB且大多数脚本每页使用一个php文件时设计的。 如今,像Magento这样的解决方案需要超过10k个文件(APC中约为60Mb)。 你应该允许足够的内存,所以大多数PHP文件总是被缓存。 这不是浪费,将操作码保存在ram中更有效,而不是在文件缓存中使用相应的原始php。现在我们可以找到具有24Gb内存的专用服务器,每月只需80美元,所以不要犹豫,允许几个GB到APC。 我在托管5Magento商店和~40 wordpress网站的服务器上放入24GB的2GB,APC使用1.2GB。 Magento安装数量为64MB,带有一些插件的Wordpress数量为40MB。

此外,如果您在同一台服务器上有开发网站。 从缓存中排除它们。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值