如何在我的系统上查找内存

如何在我的系统上查找内存

很久以前,我在自己的生产服务器上创建了一些虚拟机。在 Ubuntu 上使用 virt-manager 时,我忘记了它们的配置,即我为这些虚拟机分配了多少 RAM,有人能帮我弄清楚吗?我不知道如何检测那部分。

在一些回复后编辑我使用的是 KVM 而不是 Xen

free -m 有以下输出

             total       used       free     shared    buffers     cached
Mem:          1002        956         45          0         30        151
-/+ buffers/cache:        774        228
Swap:         2015          0       2015

配置文件 virtual_machine.xml 有以下条目,我认为这是 RAM 规格的正确行

 <memory>1048576</memory>
 <currentMemory>1048576</currentMemory>

但我无法理解 GB 中的 no 等于什么。这是虚拟机上的 top 命令的输出

Mem:   1026868k total,   980080k used,    46788k free,    31508k buffers
Swap:  2064376k total,      104k used,  2064272k free,   155040k cached

对于另一个虚拟机 free -m 具有以下内容

             total       used       free     shared    buffers     cached
Mem:          2009       1848        161          0        235        792
-/+ buffers/cache:        820       1189
Swap:         5847          1       5846

它的配置文件有

 <memory>2097152</memory>
  <currentMemory>2097152</currentMemory>

top -b -d 1 > top.txt现在,所有这些客户机正在运行的主机上的命令输出是

top - 14:40:43 up 8 days,  4:01,  1 user,  load average: 0.68, 0.58, 0.55
Tasks: 259 total,   2 running, 256 sleeping,   0 stopped,   1 zombie
Cpu(s):  1.3%us,  4.2%sy,  0.0%ni, 94.4%id,  0.1%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   8181868k total,  8059876k used,   121992k free,   388564k buffers
Swap: 15624184k total,    63012k used, 15561172k free,  1596052k cached

我想知道的是 Host 拥有多少内存以及分配给 guest 的内存有多少。

答案1

您的主机有 8GB 的​​ RAM:

Mem:   8181868k total

您的第一台虚拟机分配了 1GB 的内存。您的虚拟机配置文件指定 1048576,单位为 kB(我假设如此,但其他单位都没有意义)。top 的输出显示 1026868k,这也证实了这一点,它也足够接近 1GB 来支持这一点。

由于这些数字不匹配,因此会造成混淆。这可能是因为 RAM 被保留用于 PCI 和 BIOS 地址空间映射 - 这种情况甚至发生在 KVM 内部,因为 KVM 提供了一个伪 BIOS,它需要为 BIOS 和伪 PCI 空间保留一些内存。

第二台虚拟机同样分配了 2GB 的 RAM。

有一个很好的答案这里关于如何正确解释“free”的输出,值得一读。我不会在这里重复

答案2

假设您使用 xen,请尝试“grep mem [xen config files]”,我的配置文件位于 /etc/xen/configs/,因此它是“grep mem /etc/xen/configs/*”

要查找系统(主机)上的内存,请尝试“free -m”

答案3

正如 Sirex 所写,如果您正在使用 Xen,请尝试使用命令

xm list

它将显示您分配的虚拟机及其内存。

编辑:我注意到您正在使用 KVM。尝试使用以下命令 virsh:

virsh dommemstat DOMAIN_ID

要找出您的域名的 ID,请使用:

virsh list

我希望它有帮助。

相关内容