Как узнать объем физической памяти в Linux.
Предыстория: я хочу быть уверенным, что сумма всех машин kvm не использует больше оперативной памяти, чем доступно.
Я могу найти сумму в киБ так:
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 указаны в килобайтах, а не в килобайтах ....
Вирш имеет 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}'
Сравните два значения и выполните необходимое действие,