Linux узнать сколько оперативной памяти свободно

5 команд для проверки использования памяти в Linux

Сегодня обсудим команды, которые можно использовать для проверки использования памяти в Linux.

1. Команда Free

Команда free – это самая простая и удобная утилита для проверки использования памяти в linux.
Пример вывода:

$ free -m total used free shared buffers cached Mem: 7976 6459 1517 0 865 2248 -/+ buffers/cache: 3344 4631 Swap: 1951 0 1951

Ключ -m отображает все данные в мегабайтах (Можно еще в байтах -b, в гигабайтах -g итд). В данном примере общий объем в OS 7976 МБ – это общий объем оперативной памяти установленной в системе, то есть 8 ГБ. Столбец used показывает объем RAM, который использует Linux, в данном случае около 6.4 ГБ. Вывод довольно понятен. Подвох здесь – столбец cached и buffers. Вторая строка говорит о том, что 4,6 ГБ свободно. Это свободная память в первой строке, добавленная с буферами (buffers) и кэшированным (cached) объемом памяти.

Последняя строка – это память подкачки (Swap), которая в этом случае полностью свободна.

У Linux есть привычка кешировать множество вещей для более быстрой производительности, так что память может быть освобождена и использована при необходимости.

2. /proc/meminfo

Следующий способ проверить использование памяти, это файл /proc/meminfo. Файловая система /proc не содержит реальных файлов. Это скорее виртуальные файлы, которые содержат динамическую информацию о ядре и системе.

$ cat /proc/meminfo MemTotal: 8167848 kB MemFree: 1409696 kB Buffers: 961452 kB Cached: 2347236 kB SwapCached: 0 kB Active: 3124752 kB Inactive: 2781308 kB Active(anon): 2603376 kB Inactive(anon): 309056 kB Active(file): 521376 kB Inactive(file): 2472252 kB Unevictable: 5864 kB Mlocked: 5880 kB SwapTotal: 1998844 kB SwapFree: 1998844 kB Dirty: 7180 kB Writeback: 0 kB AnonPages: 2603272 kB Mapped: 788380 kB Shmem: 311596 kB Slab: 200468 kB SReclaimable: 151760 kB SUnreclaim: 48708 kB KernelStack: 6488 kB PageTables: 78592 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 6082768 kB Committed_AS: 9397536 kB VmallocTotal: 34359738367 kB VmallocUsed: 420204 kB VmallocChunk: 34359311104 kB HardwareCorrupted: 0 kB AnonHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 62464 kB DirectMap2M: 8316928 kB 

Проверьте значения MemTotal, MemFree, Buffers, Cached, SwapTotal, SwapFree.
Они указывают те же значения использования памяти, что и команда free.

3. vmstat

Команда vmstat с ключем -s покажет статистику использования памяти во многом подобно команде proc.
Вот пример

$ vmstat -s 8167848 K total memory 7449376 K used memory 3423872 K active memory 3140312 K inactive memory 718472 K free memory 1154464 K buffer memory 2422876 K swap cache 1998844 K total swap 0 K used swap 1998844 K free swap 392650 non-nice user cpu ticks 8073 nice user cpu ticks 83959 system cpu ticks 10448341 idle cpu ticks 91904 IO-wait cpu ticks 0 IRQ cpu ticks 2189 softirq cpu ticks 0 stolen cpu ticks 2042603 pages paged in 2614057 pages paged out 0 pages swapped in 0 pages swapped out 42301605 interrupts 94581566 CPU context switches 1382755972 boot time 8567 forks

Верхние несколько строк указывают на общую количество память, свободную память итд.

Читайте также:  Usr src linux make module

4. top command

Команда top обычно используется для проверки использования памяти и загрузку процессора для каждого процесса. Однако он также сообщает об общем использовании памяти и может использоваться для контроля общего использования памяти. Верхняя область содержит необходимую информацию.

top - 15:20:30 up 6:57, 5 users, load average: 0.64, 0.44, 0.33 Tasks: 265 total, 1 running, 263 sleeping, 0 stopped, 1 zombie %Cpu(s): 7.8 us, 2.4 sy, 0.0 ni, 88.9 id, 0.9 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 8167848 total, 6642360 used, 1525488 free, 1026876 buffers KiB Swap: 1998844 total, 0 used, 1998844 free, 2138148 cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2986 enlighte 20 0 584m 42m 26m S 14.3 0.5 0:44.27 yakuake 1305 root 20 0 448m 68m 39m S 5.0 0.9 3:33.98 Xorg 7701 enlighte 20 0 424m 17m 10m S 4.0 0.2 0:00.12 kio_thumbnail

Проверьте строки KiB Mem и KiB Swap в верхней области. Они указывают общее, использованное и свободное количество памяти. Информация о буфере и кеше также присутствует здесь как в команде free.

5. htop

Подобно команде top, команда htop также показывает использование памяти и другую информацию.

Верхняя область показывает использование процессора, а также использование оперативной памяти и файла подкачки (Swap) с соответствующими цифрами.

Информация о RAM

Чтобы узнать аппаратную информацию об установленной оперативной памяти, используйте команду dmidecode. Она сообщает много информации об установленной оперативной памяти.

# dmidecode 3.1 Getting SMBIOS data from sysfs. SMBIOS 2.6 present. Handle 0x1100, DMI type 17, 28 bytes Memory Device Array Handle: 0x1000 Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 4096 MB Form Factor: DIMM Set: None Locator: DIMM 1 Bank Locator: Not Specified Type: DDR3 Type Detail: Synchronous Speed: 1333 MT/s Manufacturer: Not Specified Serial Number: Not Specified Asset Tag: Not Specified Part Number: Not Specified Rank: 2 . 

Вывод покажет кол-во установленных модулей памяти, их объем (4096MB), тип (DDR3), частоту (1333 Mhz) и другую информацию.

Читайте также:  Xerox workcentre 3315 linux

Источник

Пять команд для проверки оперативной памяти в Линукс

Помните, когда-то на канале выходил материал по командам для проверки жестких дисков на Линукс-серверах? Если не помните, то можете пройти по прикрепленной ниже ссылке и прочитать.

Вторым не менее важным элементом в работе сервера является оперативная память. У нее есть одно свойство — она может заканчиваться, что в результате приводит к сбоям в работе сервера. Поэтому давайте узнаем какими командами можно следить за оперативной памятью.

Чтобы получить уведомления о выходе новых заметок подпишитесь на обновления канала Просто Код в Телеграме.

Команда free

Начнем с базовой команды, которая одновременно и является утилитой в Linux. Использование ее просто, достаточно в терминале ввести free.

Использование ключей упрощает восприятие выводимой информации. Используйте ключ -m чтобы показать данные в мегабайтах, ключ -g в гигабайтах, ключ -b в байтах, ключ -k в килобайтах, ключ -h делает вывод удобным для чтения человеком (человекопонятным).

Теперь поговорим про то, что обозначают выводимые столбцы:

  • total — общий объем оперативной памяти
  • used — объем оперативной памяти, который использует Linux
  • free — количество не задействованной оперативной памяти
  • shared — столбец можно игнорировать, так как он полезен только для обратной совместимости
  • buff/cache — объединенная оперативная память, которая используется буферами ядра, кэшем страниц и пр., эту память могут использовать приложения, если им это необходимо
  • available — количество оперативной памяти, доступной для запуска новых приложений без необходимости замены.
  • swap — этот столбец показывает размер файла подкачки

Столбец used рассчитывается следующим путем:

used = total — free — buffers — cache

Особенностью Линукс является привычка кэшировать большое количество всего, чтобы в случае необходимости не загружать что-то заново, а воспользоваться сохраненной версией.

Команда cat /proc/meminfo

С командой cat мы уже знакомились в статье про работу с файлами. Про папку /proc мы тоже читали в статье про системные папки корневого раздела Linux. Внизу прикреплю две этих статьи, чтобы прочитать их или освежить материал в памяти.

В папке /proc размещается динамический файл meminfo, содержимое которого мы и будем считывать командой cat.

«Выхлоп» у команды большой, но нас интересуют строки MemTotal, MemFree, Buffers, Cached, SwapTotal и SwapFree. Они соответствуют тем же значениям, которые мы получили после ввода команды free.

Команда vmstat

Ввод этой команды позволяет не только отследить использование оперативной памяти, но и получить дополнительную информацию о том, что ее использует.

Читайте также:  Network interface monitor linux

Данных опять-таки много, хотя, в отличии от предыдущей команды они и скомпонованы на экране получше. Нас будут интересовать только первые три.

  • r отображает число запущенных процессов, это те, которые работают или которые ожидают выполнения.
  • b отображает число «спящих» процессов.
  • swpd отображает объем используемой виртуальной памяти.
  • free показывает объем свободной памяти.
  • buff показывает количество памяти, используемой в качестве буферов.
  • cache показывает объем памяти, используемой в качестве кеша.
  • inact/active показывают количество неактивной/активной памяти.
  • si показывает объем оперативной памяти, выгруженный с диска.
  • so показывает объем объем памяти, перенесенный на диск.

Можно использовать при вводе команды ключ -s, который выведет в начале только то, что напрямую относится к оперативной памяти.

Команда top

Утилита выводит информацию о используемой оперативной памяти и загрузку процессора для каждого запущенного в системе процесса. Помимо этого «выхлоп» поможет нам получить информацию об общем использовании памяти и контролировать его.

Как видим, вывод команды уже представлен в псевдографическом виде. Нас интересует верхние строки, содержащие слова Mem и Swap. В них же находятся те данные, которые мы получали использованием команды free.

Команда htop

Это «прокачанный» вариант top, но его нужно устанавливать отдельно. Пакет этот имеется во всех популярных дистрибутивах, потому проблем возникнуть не должно. На моем сервере установлен Debian 11, потому для установки htop нужно ввести команду

sudo apt install htop

После можно вводить основную команду и смотреть то, что она покажет.

Вывод намного приятнее, чем у top, обратите внимание на верхние строки: в них показывается нагрузка на ядра процессора, ниже данные по оперативной памяти. Также справа видим количество запущенных процессов, нагрузку системы и время ее непрерывной работы. Внизу расположены горячие клавиши, при помощи которых можно управлять процессами.

Мой выбор

Из описанных выше команд я предпочитаю free, она простая в использовании и дает сразу необходимые данные. Если сервер используется мной на постоянной основе (не для какой-либо разовой процедуры), то уже устанавливаю htop, который чаще использую для отслеживания прожорливых процессов. Опять-таки htop конкретно для работы с оперативной памятью и ее мониторингом практически не использую.

В комментариях подписчики и читатели канала могут рассказать о своих предпочтениях в плане утилит для мониторинга оперативной памяти на Linux-серверах. Может узнаю что-нибудь нового в плане команд и утилит.

Призываю активно участвовать в жизни канала: подписываться, комментировать, лайкать. Чем больше активностей, тем быстрее посты попадут в рекомендации Дзена. Также приглашаю подписаться на обновления Просто Код в Телеграме , чтобы получать уведомления о выходе новых заметок.

Источник

Оцените статью
Adblock
detector