是什么导致“无法为池分配内存"?在 PHP 中?

2021-12-20 00:00:00 memory caching php apc

我偶尔会遇到服务器的内存分配限制,尤其是像 Wordpress 这样臃肿的应用程序,但从未遇到过无法为池分配内存"和无法跟踪任何信息的情况.

I've occasionally run up against a server's memory allocation limit, particularly with a bloated application like Wordpress, but never encountered "Unable to allocate memory for pool" and having trouble tracking down any information.

有人知道这是什么意思吗?我试过增加 memory_limit 没有成功.我也没有对应用程序进行任何重大更改.一天没有问题,第二天我就遇到了这个错误.

Does anyone know what this means? I've tried increasing the memory_limit without success. I also haven't made any significant changes to the application. One day there was no problem, the next day I hit this error.

推荐答案

可能与 APC 相关.

对于遇到此问题的人,请指定您的 .ini 设置.特别是您的 apc.mmap_file_mask 设置.

For the people having this problem, please specify you .ini settings. Specifically your apc.mmap_file_mask setting.

对于文件支持的 mmap,它应该设置为:

For file-backed mmap, it should be set to something like:

apc.mmap_file_mask=/tmp/apc.XXXXXX

要直接从/dev/zero 映射,请使用:

To mmap directly from /dev/zero, use:

apc.mmap_file_mask=/dev/zero

对于符合 POSIX 的共享内存支持的 mmap,请使用:

For POSIX-compliant shared-memory-backed mmap, use:

apc.mmap_file_mask=/apc.shm.XXXXXX

相关文章