什么在使用我的 Amazon EC2 实例上的内存?

什么在使用我的 Amazon EC2 实例上的内存?

我目前正在 Amazon EC2 上运行单个 GPU 集群计算节点,该节点显示每个实例有 22 GB 的 RAM。top确认该实例确实有 22 GB 的 RAM,但在空闲系统上似乎始终有 5-6 GB 的 RAM 在使用中。两者都top无法ps aux确定此使用归因于哪些进程。

在我看来,5-6 GB 对于操作系统来说似乎太大了,但也许我错了。这可能是由于 Amazon 上的虚拟化而产生的开销吗?还有其他关于如何追踪此问题的想法或建议吗?

答案1

当你看着顶部,你看到的空闲内存是内核缓存之前的值。

top - 12:59:25 up 1 day, 15:47,  5 users,  load average: 0.04, 0.10, 0.12
Tasks: 161 total,   1 running, 160 sleeping,   0 stopped,   0 zombie
Cpu(s):  3.5%us,  1.8%sy,  0.0%ni, 94.2%id,  0.4%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   3985464k total,  3369908k used,   615556k free,   752964k buffers
Swap:  1951740k total,       12k used,  1951728k free,  1439160k cached

我的笔记本电脑总共有 3985464 千字节内存。但 Linux 内核会在内部缓存其中的大部分,因此顶部只显示 619748kB 的可用内存。但是如果你使用自由的命令,你明白,事实上,大部分内存可用......在缓存中。

$ free
             total       used       free     shared    buffers     cached
Mem:       3985464    3365716     619748          0     752796    1439152
-/+ buffers/cache:    1173768    2811696
Swap:      1951740         12    1951728

真正的可用内存是缓冲区/缓存线。

             total       used       free     shared    buffers     cached
-/+ buffers/cache:    1173768    2811696

本机有2.8GB可用内存。

答案2

您看到大量内存被使用的原因是 Linux 使用了大量内存进行文件缓存。

这可能会为你澄清一些事情:

http://www.linuxatemyram.com/

相关内容