如何查找 Linux 上的物理内存数量。
背景:我想确保所有 kvm 机器的总和不会使用超过可用容量的 RAM。
我可以像这样找到 kiB 总和:
for dom in $(virsh list --all --name); do virsh dumpxml $dom | sed -nre 's/^.*>([0-9]*)<.currentMemory.*$/\1/p' ; done| awk '{s+=$1} END {print s}'
但是 /proc/meminfo 的值以 kB 而不是 kiB 为单位....
答案1
Virsh 适用dommemstat
于每个域名,并且更容易被过滤掉。
for meminfo in $(virsh list | awk 'NR > 1 {print $2}');
do
virsh dommemstat "$meminfo"
done | awk '/actual/{s+=$2}END{print s}'
完成后,您可以使用以下命令获取节点的总内存:
virsh nodememstats | awk -F: '/total/{print +$2}'
比较两个值并采取所需的操作,