openvz 中的虚拟内存使用率高吗?

openvz 中的虚拟内存使用率高吗?

我们在新的 OpenVZ 机箱上遇到了很多内存问题。它应该有 1 GB 的内存,我不确定其中有多少是可突发或保证的内存。一般来说,程序占用的虚拟内存似乎比我家里的机箱和我们的其他 OpenVZ 机箱上的虚拟内存要多。

我写了这个简单的 C 程序:

#include <stdio.h>
#include <stdlib.h>

int main(){
  char *thingy = malloc(500);
  getchar():
  return 0;
}

因此它只是分配 500 字节然后返回。我在 3 台计算机上运行了该程序。在我家的机器和我们的另一台 OpenVZ 机器上,它显示正在使用大约 1k 字节的虚拟内存。在新的有问题的机器上,它大约是 3k。

我知道这只是虚拟内存而不是常驻内存,但是为什么这台机器分配了这么多虚拟内存?我需要调整一些设置以适应 OpenVZ 内存设置吗?

我尝试使用 ulimit -s 256 更改堆栈大小并重新启动一些守护程序,但仍然看到相同的结果。

我使用 htop 进行所有监控,这是否是与 OpenVZ vps 配合使用的好程序?我读到我应该解析 /proc/user_beancounters 的输出或其他内容。

我应该注意到这种内存使用似乎会导致崩溃。:\

答案1

由于虚拟内存实际上是免费的,所以没人会费心去优化它的使用。很可能,它只是分配大量内存以避免以后分配更多内存。

较大分配与较小分配的成本相同。但是两个较小分配的成本高于一个较大分配。

相关内容