Как посмотреть память ОЗУ в FreeBSD

Популярность операционной системы FreeBSD несравненно ниже, чем у Linux. Но списывать со счетов ее рано.

Linux-администратор, очутившись в терминале FreeBSD может обратить внимание на отсутствие некоторых команд и программ, которые есть в Linux, но отсутствуют по умолчанию в FreeBSD.

Одна из таких команд - free. Эта команда позволяет вывести в терминал информацию о свободной и занятой оперативной памяти, об использовании раздела подкачки или буферов, используемых ядром.

Да, в какой-то мере это можно заменить командой sysctl, но для удобства получения информации Ralf S. Engelschall написал скрипт на perl, который можно взять здесь http://goo.gl/fWfKH

Этот скрипт при запуске на сервере с FreeBSD выводит такую информацию:

SYSTEM MEMORY INFORMATION:
mem_wire: 185176064 ( 176MB) [ 17%] Wired: disabled for paging out
mem_active: + 411504640 ( 392MB) [ 39%] Active: recently referenced
mem_inactive:+ 423071744 ( 403MB) [ 40%] Inactive: recently not referenced
mem_cache: + 10313728 ( 9MB) [ 0%] Cached: almost avail. for allocation
mem_free: + 3891200 ( 3MB) [ 0%] Free: fully available for allocation
mem_gap_vm: + 4096 ( 0MB) [ 0%] Memory gap: UNKNOWN
-------------- ------------ ----------- ------
mem_all: = 1033961472 ( 986MB) [100%] Total real memory managed
mem_gap_sys: + 18231296 ( 17MB) Memory gap: Kernel?!
-------------- ------------ -----------
mem_phys: = 1052192768 ( 1003MB) Total real memory available
mem_gap_hw: + 21549056 ( 20MB) Memory gap: Segment Mappings?!
-------------- ------------ -----------
mem_hw: = 1073741824 ( 1024MB) Total real memory installed

SYSTEM MEMORY SUMMARY:
mem_used: 636465152 ( 606MB) [ 59%] Logically used memory
mem_avail: + 437276672 ( 417MB) [ 40%] Logically available memory
-------------- ------------ ----------- ------
mem_total: = 1073741824 ( 1024MB) [100%] Logically total memory

Для того, чтобы узнать сколько на сервере ОЗУ и какая часть используется, а какая свободна, можно посмотреть на последние три строки под заголовком SYSTEM MEMORY SUMMARY:

  • mem_total - общее количество доступной памяти на сервере
  • mem_used - количество используемой (занятой) памяти на сервере
  • mem_avail - количество свободной памяти на сервере

Чуть выше приводится более подробная информация об использовании памяти. В принципе, всю эту информацию можно получить из top, но тут смотрится более наглядно

  • mem_wire - область памяти, недоступная для свопинга (к примеру, кеш файловой системы)
  • mem_active - страницы памяти, на которые активно ссылаются приложения
  • mem_inactive - страницы памяти, на которые давно никто не ссылался
  • mem_cache - закешированные страницы памяти, в любой момент готовые к использованию
  • mem_free - количество памяти доступное для выделения приложениям

Этот скрипт можно переименовать во free, дать исполняемый бит:

chmod +x free

и положить в /usr/local/sbin для запуска в любое время.

Другой вариант аналога команды free как в Linux, это приложение freecolor. Ее вывод близок к тому, что отображает команда free. Freecolor доступна для установки через пакетный менеджер или порты:

pkg install freecolor

или

make all install clean -C /usr/ports/sysutils/freecolor

При запуске без ключей, информация об ОЗУ выводится графически.

Physical : [###############....................] 44% (448096/1009728)
Swap : [###############################....] 90% (2384444/2621440)

Но при запуске с ключами -o -m приложение выводит информацию в формате линуксового free

total used free shared buffers cached
Mem: 986 555 430 0 0 12
Swap: 2560 231 2328

Автор статьи:

Сабынич Вадим

Аватар пользователя vadim s. sabinich
Вернуться