我收到了来自 python 和 php 的各种与内存相关的错误,以及分段错误 - 然而输出free -m
不断显示有足够的空闲内存 - 即
greg@greg-brown:~$ free -m
total used free shared buffers cached
Mem: 1024 520 503 0 0 163
-/+ buffers/cache: 356 667
Swap: 512 0 512
这是否意味着存在硬件问题?我该如何调试它?
答案1
如果您尝试分配大于单个连续块可用内存的单个块,则可能会出现内存不足错误,即使许多较小的块中有足够的内存可用。这种情况尤其发生在 32 位系统上,当虚拟地址空间变得碎片化时,这种情况会变得越来越有可能,随着使用量接近 2GB 并且使用时间越长,这种情况就越有可能出现。请 Google 搜索“内存碎片化”以了解更多信息。