Как использовать память (используя RAM) с помощью команды Linux?

Я пытаюсь извлечь использованную память (ОЗУ) в процентах с помощью команд Linux. Моя cpanel показывает используемую память, которую мне нужно отображать на определенной веб-странице.

Из форумов я узнал, что правильная память может быть найдена из следующего:

free -m

Результат:

-/+ buffers/cache:        492       1555

- /+ buffers /cache: содержит правильное использование памяти. Я не знаю, как разбирать эту информацию или есть какая-либо другая команда, чтобы получить память, используемую в процентах.

27 голосов | спросил Code_O1logn 27 AM000000120000001231 2014, 00:24:12

5 ответов


31

Вот пример вывода из бесплатного:

% free
             total       used       free     shared    buffers     cached
Mem:      24683904   20746840    3937064     254920    1072508   13894892
-/+ buffers/cache:    5779440   18904464
Swap:      4194236        136    4194100

Первая строка чисел (Mem:) содержит списки

  • total память
  • used память
  • free память
  • использование shared
  • использование buffers
  • кэширование файловой системы использования (cached)

В этой строке used включает буферы и кеш , и это влияет на свободу. Это не ваша «истинная» свободная память, потому что система будет при необходимости кэшировать кеш, чтобы удовлетворить запросы распределения.

Следующая строка (-/+ buffers/cache:) дает нам фактическую использованную и свободную память, как если бы не было буферов или кешей.

Конечная строка (Swap) дает использование swap-памяти. Для обмена нет буфера или кеша, так как это не имеет смысла помещать эти вещи на физический диск.

Для вывода используемой памяти (минус буферы и кеш) вы можете использовать команду:

% free | awk 'FNR == 3 {print $3/($3+$4)*100}'
23.8521

Это захватывает третью строку и делит используемую /общую * 100.

И для свободной памяти:

% free | awk 'FNR == 3 {print $4/($3+$4)*100}' 
76.0657
ответил casey 27 AM000000120000001231 2014, 00:38:12
10

Я расскажу о том, как анализировать информацию о команде free. Чтобы найти процент, вы можете использовать, как предложено в других двух ответах.

Это ясно объясняется здесь . Я попытаюсь объяснить, что у меня в моей системе.

free -m
             total       used       free     shared    buffers     cached
Mem:          7869       4402       3466          0        208       3497
-/+ buffers/cache:        696       7173
Swap:         3999        216       3783

Теперь давайте посмотрим, что представляют собой различные числа.

Line1

  • 7869 Обозначает память /физическую память, доступную для моей машины.
  • 4402 Обозначает память /оперативную память, используемую моей системой.
  • 3466 Указывает, что полная RAM свободна и доступна для запуска нового процесса.
  • 0 Указывает общую память. Эта колонка устарела и может быть удалена в будущем       релизы бесплатно.
  • 208 Указывает общую RAM, буферизуемую различными приложениями в Linux.
  • 3497 Обозначает общую ОЗУ, используемую для кэширования данных для будущей цели.

Line2

-/+ buffers/cache:        696       7173

Как рассчитать значения 696 и 7173, полученные в Line2?

Общее количество используемых ( 4402 ) - Общая буферная RAM ( 208 ) - Общая оперативная память для кеширование ( 3497 ) должно составлять Фактически используемое ОЗУ в системе. Он возвращает мне 697 , который является фактическим использованным оператором RAM во второй строке.

Теперь Total Available ( 7869 ) - Фактическое использование ( 696 ) должно дать вам свободная память , которая 7173 в этом случае также получена как выход во второй строке.

ответил Ramesh 27 AM000000120000005231 2014, 00:40:52
6

Хотя дублировать , как указано @ szboardstretcher, мое предпочтение от решений (в исходном вопросе) - это ниже, особенно потому, что вы хотите разобрать веб-страницу.

$ 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: 82.68%, buffers: 42.81%, swap: 1.27%
ответил Simply_Me 27 AM000000120000003331 2014, 00:46:33
1
free | awk '/Mem/{printf("used: %.2f%"), $3/$2*100} /buffers\/cache/{printf(", buffers: %.2f%"), $4/($3+$4)*100} /Swap/{printf(", swap: %.2f%\n"), $3/$2*100}' 

Добавляет новую строку после номера подкачки

ответил Andy 9 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 09 Sep 2016 19:03:31 +0300 2016, 19:03:31
0

Для до CentOS 7 Вы можете попробовать

cat /proc/meminfo 

, чтобы увидеть реальное использование памяти процессами.

ответил Cosmo Arun 18 Mayam18 2018, 02:42:11

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132