Я пытаюсь восстановить используемую память (ОЗУ) в процентах, используя команды Linux. Моя cpanel показывает используемую память, которую мне нужно отобразить на определенной веб-странице.
Из форумов я узнал, что правильную память можно найти из следующего:
free -m
Результат:
-/+ buffers/cache: 492 1555
- / + buffers / cache: содержит правильное использование памяти. Я не знаю, как анализировать эту информацию или есть какая-либо другая команда, чтобы получить объем используемой памяти в процентах.
free | grep Mem | awk '{print $4/$2 * 100.0}'
$ free | awk '/Mem/{printf("used: %.2f%"), $3/$2*100} /buffers\/cache/{printf(", buffers: %.2f%"), $4/($3+$4)*100} /Swap/{printf(", swap: %.2f%"), $3/$2*100}'
Ответы:
Вот пример вывода из бесплатных:
Первая строка чисел (
Mem:
) списковtotal
объем памятиused
объем памятиfree
объем памятиshared
buffers
cached
)В эту строку
used
входят буферы и кеш, и это влияет бесплатно. Это не ваша «настоящая» свободная память, потому что система будет создавать дамп кеша, если это необходимо для удовлетворения запросов на распределение.Следующая строка (
-/+ buffers/cache:
) дает нам фактически используемую и свободную память, как если бы не было буферов или кеша.Последняя строка (
Swap
) показывает использование памяти подкачки. Там нет буфера или кеша для подкачки, так как не имеет смысла помещать эти вещи на физический диск.Для вывода используемой памяти (за исключением буферов и кеша) вы можете использовать такую команду:
Это захватывает третью строку и делит использованный / всего * 100.
И для свободной памяти:
источник
free
,-/+ buffers/cache
полностью опущен преднамеренно, и значение показано вused
колонке Теперь исключает буфера и кэш по умолчанию. Смотрите здесь: bugzilla.redhat.com/show_bug.cgi?id=1158828Я собираюсь упомянуть о том, как разобрать информацию о
free
команде. Чтобы найти процент, вы можете использовать, как предложено в двух других ответах.Это ясно объяснено здесь . Я бы попытался объяснить, что у меня есть в моей системе.
Теперь давайте посмотрим, что на самом деле представляют различные цифры.
Линия 1
Line2
Как рассчитать значения 696 и 7173, полученные в строке 2?
Общее количество использованных ( 4402 ) - Общее количество буферной памяти ( 208 ) - Общее количество памяти для кеширования ( 3497 ) должно составлять фактическую используемую память в системе. Он возвращает мне 697, который является фактически используемым выходом ОЗУ во второй строке.
Теперь Total Available ( 7869 ) - Actual Used ( 696 ) должен дать вам свободную память, которая в данном случае составляет 7173, которая также получается как вывод во второй строке.
источник
Несмотря на дубликат, указанный @szboardstretcher, я предпочитаю решения (в исходном вопросе) ниже, особенно если вы хотите проанализировать веб-страницу.
Выход:
источник
used: 96.00%, buffers: 26.53%awk: (FILENAME=- FNR=4) fatal: division by zero attempted
$ cat /etc/issue CentOS release 6.7 (Final)
$ free | awk '/Mem/{printf("used: %.2f%"), $3/$2*100} /buffers\/cache/{printf(", buffers: %.2f%"), $4/($3+$4)*100} /Swap/{printf(", swap: %.2f%"), $3/$2*100}' used: 12.91%, buffers: 96.24%awk: (FILENAME=- FNR=4) fatal: division by zero attempted $ free total used free shared buffers cached Mem: 15429704 1991416 13438288 164 151556 1259584 -/+ buffers/cache: 580276 14849428 Swap: 0 0 0
Добавляет новую строку после номера подкачки
источник
Для CentOS 7 вы можете попробовать
увидеть реальное использование памяти процессами.
источник