尽管有可用内存,但无法分配内存?

尽管有可用内存,但无法分配内存?

我有一个 Web 服务器最近行为异常。为了简单起见,请看以下内容:

[root@xxxxx test]# ls -lah
-bash: fork: Cannot allocate memory
[root@xxxxx test]# free -m
             total       used       free     shared    buffers     cached
Mem:          1285        899        386          0          0          0
-/+ buffers/cache:        899        386
Swap:            0          0          0

那么,为什么会发生这种情况?我还需要提供其他信息才能获得帮助吗?

答案1

我知道,您使用的是 Virtuozzo 或 OpenVZ PVS(伪虚拟服务器),这使得“内存”的概念充其量只是一个相当似是而非的概念。您的提供商限制了您可以使用的“过度承诺”内存量,而您遇到了这个问题。顺便说一句,您在 free 中看到的“总内存”数字与 VZ PVS 中的实际情况无关——提供商可以配置 VZ 以显示他们想要的任何数字,而不管实际分配给您的资源是什么。

您需要向您的提供商提出此支持请求,因为他们是唯一可以帮助您的人(我们看不到您的 PVS 的配置,更不用说更改它了),如果您没有从他们那里获得所需的支持,我强烈建议您切换到可以为您提供(a)合适的 VPS 的提供商,该 VPS 实际上它所说的可用内存(即。不是基于 VZ 的 PVS)和 (b) 对您所付费产品的适当支持。

答案2

我认为您受到配额系统的限制。如果可以...只需从 shell 运行配额检查用户...前提是您已在 vps 环境中授予该特定命令的访问权限。

干杯!

相关内容