Популярность операционной системы 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