Мне нужно получить использование памяти в% от vmstat, но я не совсем понимаю некоторые числа, относящиеся к памяти, отображаемой в vmstat.
В частности, учитывая такой вывод
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 139728 45396 199128 1236360 1 2 4 622 3 1 51 4 43 2 0
Каков объем общей памяти системы? Это «swpd» + «free» + «buff» + «cache», что в сумме составляет 1620612?
Каков свободный объем памяти системы? Это 45396, как показано в столбце «бесплатно»?
Проблема в том, что они не складываются и даже не выглядят близко к тому, что сообщают «верхушки». Вывод 'top', который я взял примерно в то же время, что и 'vmstat's выше:
[...]
Mem: 4059616k total, 3965504k used, 94112k free, 200020k buffers
[...]
Итак ... Я предполагаю, что в vmstat должны быть скрытые номера / опции, о которых я не знал?
Мне нужно использовать «vmstat» для этой цели, а не другие команды, так как это требование указано.
Поэтому в идеале я хочу добиться от vmstat% использования памяти, как в:
<used_memory>/<total_memory> * 100%.
Спасибо!
Ответы:
То, что вы ищете, является выводом "free":
Вот тур:
Это коробка с 768 МБ физической ОЗУ и разделом подкачки 500344 КБ.
759456KB «используется» (второй столбец, верхний ряд). Из этой «используемой» памяти 23132 КБ составляют буферы (5-й столбец, верхняя строка), а 592484 КБ (шестой столбец, верхняя строка) - кэш, оставляя 144840 КБ (2-й столбец, 2-я строка) физической памяти, используемой активными процессами.
Если учесть, что память, используемая буферами и кешем, может использоваться для процессов, то остается 630716 КБ (3-й столбец, 2-й ряд) физической памяти.
Раздел подкачки, как я уже сказал, имеет размер 500344 КБ (1-й столбец, нижний ряд). 21972 КБ (2-й столбец, нижний ряд) файла подкачки используется, оставляя 478372 КБ (3-й столбец, нижний ряд) свободным.
Итак, ваше определение% свободной памяти зависит от того, подсчитываете ли вы буферы и кеш или нет, и считаете ли вы подкачку или нет.
Это должно дать вам достаточно, чтобы рассчитать процент по вашему усмотрению.
Вот вывод top и free:
Вы можете видеть, как top и free согласуются (хотя и с небольшой разницей - это многопользовательский компьютер, и использование памяти top и free программ отражено там).
Добавьте «-s» при вызове vmstate, и вы увидите почти такой же вывод, только в другой форме:
Вы можете видеть, что vmstat показывает все те же цифры, что и бесплатные.
источник
У меня такой же вопрос с вами и придумать формулу
Я проверил это на версии vmstat из procps-ng 3.3.10 и vmstat из procps-ng 3.3.9
источник
Я бы порекомендовал вам прочитать эту Красную книгу IBM "Руководство по производительности и настройке Linux" ( http://www.redbooks.ibm.com/abstracts/redp4285.html?Open ). Он содержит подробную информацию о данных, возвращаемых многочисленными командами, и должен помочь вам.
Я обычно использовал команду «free» в Linux или «cat / proc / meminfo».
источник
Вот функция оболочки POSIX, которая округляет желаемый процент до ближайшего целого числа (для сценариев это может быть более полезным, поскольку тесты арифметического сравнения оболочки POSIX работают только с целыми числами):
Вывод (в моей системе):
То же самое, с
free
:источник