Как говорит @khedron , вы можете увидеть эту информацию в Activity Monitor.
Если вы хотите это в командной строке, вот сценарий Python, который я написал (или, возможно, модифицировал от чьего-либо, я не помню, сейчас он довольно старый), чтобы показать вам объемы проводной, активной, неактивной и свободной памяти:
#!/usr/bin/python
import subprocess
import re
# Get process info
ps = subprocess.Popen(['ps', '-caxm', '-orss,comm'], stdout=subprocess.PIPE).communicate()[0].decode()
vm = subprocess.Popen(['vm_stat'], stdout=subprocess.PIPE).communicate()[0].decode()
# Iterate processes
processLines = ps.split('\n')
sep = re.compile('[\s]+')
rssTotal = 0 # kB
for row in range(1,len(processLines)):
rowText = processLines[row].strip()
rowElements = sep.split(rowText)
try:
rss = float(rowElements[0]) * 1024
except:
rss = 0 # ignore...
rssTotal += rss
# Process vm_stat
vmLines = vm.split('\n')
sep = re.compile(':[\s]+')
vmStats = {}
for row in range(1,len(vmLines)-2):
rowText = vmLines[row].strip()
rowElements = sep.split(rowText)
vmStats[(rowElements[0])] = int(rowElements[1].strip('\.')) * 4096
print 'Wired Memory:\t\t%d MB' % ( vmStats["Pages wired down"]/1024/1024 )
print('Active Memory:\t\t%d MB' % ( vmStats["Pages active"]/1024/1024 ))
print('Inactive Memory:\t%d MB' % ( vmStats["Pages inactive"]/1024/1024 ))
print('Free Memory:\t\t%d MB' % ( vmStats["Pages free"]/1024/1024 ))
print('Real Mem Total (ps):\t%.3f MB' % ( rssTotal/1024/1024 ))
Как видите, вы можете просто позвонить vm_stat
из командной строки, хотя она рассчитана на страницы по 4 КБ, отсюда и скрипт для преобразования в МБ.
Сценарий также подсчитывает использование «реальной памяти» всеми запущенными процессами для сравнения (это не будет совпадать с какими-либо конкретными значениями из общей статистики памяти, потому что память - сложный зверь).
Вот пример вывода скрипта в моей системе:
[user@host:~] % memReport.py
Wired Memory: 1381 MB
Active Memory: 3053 MB
Inactive Memory: 727 MB
Free Memory: 1619 MB
Real Mem Total (ps): 3402.828 MB
(очень немного откорректировано, чтобы соответствовать размеру вкладки в StackExchange;)
ps -caxm -orss= | awk '{ sum += $1 } END { print "Resident Set Size: " sum/1024 " MiB" }'
Вам нужна команда
vm_stat
- похожая на традиционный инструмент Unix,vmstat
но с некоторыми отличиями, характерными для MACH. Справочная страница хорошо написана.источник
Кажется, причина в том, что это медленно, потому что
top -l 1
всегда задерживается на одну секунду после завершения, стандартная задержка между обновлениями. Добавление -s 0 к команде делает это мгновенно завершенным:Также, для ясности, мне нравится показывать каждый mem-компонент в своей строке, поэтому я добавил 9 пробелов для выравнивания с PhysMem: в строке замены sed:
источник
vm_stat
.top
значительно медленнее, чем вызовы,vm_stat
ноtop
выдержка гораздо менее многословна, и единица измерения составляет мегабайт, а не страницы. Чтобы быть еще менее многословным, разрывы строк могут быть удалены иawk
замененыgrep
следующим образомtop -l 1 | grep ^PhysMem
.page
/ не требует какой-то хакерской постобработки, чтобы сделать эти модули интерпретируемыми.Вот простая строчка, чтобы сделать весь
vm_stat
вывод более понятным для человека:источник
Если вы действительно заинтересованы в использовании свопа (какой будет последняя строка вывода
free
):источник
Существует команда терминала, похожая
free
на Mac OS X ... она называетсяtop
Для получения дополнительной информации вы можете проверить этот документ поддержки Apple.
Mac OS X: как просмотреть использование памяти с помощью «верхней» утилиты
источник
htop
Просто взяв решение от @zack и добавив неактивные и спекулятивные блоки.
источник
Только для экспертов Unix:
источник
top -l1 | awk '/PhysMem/ {print $2}'
на macos> = High Sierraисточник
tcsh
(по умолчанию) илиsh
. Это командная оболочка?bash
иksh
конкретно. Вtcsh
попытке:set freeblocks=`vm_stat | grep free | awk '{ print $3 }' | sed 's/\.//'` ; set freeMB=`expr $freeblocks \* 4096 / 1048576`; set free=`echo $freeMB MiB free`
. Затем выecho $free
можете распечатать объем свободной памяти. Можно также создать псевдоним:alias free echo $freeMB MiB free
.Судя по вашему другому вопросу , я думаю, вы нашли использование утилиты Activity Monitor для проверки состояния вашей памяти, верно? Просто для записи, он находится в / Applications / Utilities / Activity Monitor.app.
источник
Нет точного эквивалента, который распространяется с Mac OS X, но есть пара других способов получить информацию:
system_profiler
- Показывает всю информацию о профиле системы Mac в оболочкеsysctl -a | grep mem
илиsysctl hw.memsize
(всего мем)источник
Вы можете попробовать команду,
allmemory
если вам нужен инструмент командной строки, который сообщает об очень детальном использовании памяти.источник
allmemory
может быть неожиданно долгим - для меня сегодня более четырех минут на запуск, YMMV. Прогонallmemory
дляsysdiagnose
может занять значительно больше времени.Выше приведено слишком много усилий на мой взгляд, и предполагается, что у вас тоже есть полноценная установка ... Если вы загрузились с загрузочного диска Mac OS X, то все вышеперечисленные решения, очевидно, не будут работать. .. Просто используйте команду "hostinfo", вот вывод моей середины 2012 MBAir под управлением Mavericks (10.9.1):
Преимущество этой команды в том, что она поставляется с предустановленной версией 10.9
/usr/bin
, так что это очень удобно,в идеале, если вы просто хотите RAM, выполните:
Не знаю, существует ли hostinfo на каких-либо предыдущих ОС, хотя ...
источник
hostinfo
показать использованную память?Это должно делать красиво :)
источник
Я думаю, что в наши дни,
psutil
и егоmeminfo.py
сценарий предоставляет наиболее полезные детали использования памяти. Чтобы попробовать это:Выходные данные выглядят так:
Обратите внимание на
Available
строку, в которой показана оценка того, сколько памяти фактически доступно для запуска новых приложений без замены.Я не знаю ни одной другой утилиты MacOS, обеспечивающей такую оценку доступной памяти.
Для сравнения: в системе Linux такая же информация предоставляется в
available
столбце при выводе из текущих версийfree
:Этот
available
столбец вfree
выходной просто приходит отMemAvailable
в/proc/meminfo
. И в системах, которые имеют/proc/meminfo
, psutil также просто использует это для оценки доступной памяти.Но MacOS не имеет
/proc/meminfo
, поэтому оценить объем доступной памяти в этом случае psutil использует тот же алгоритм , используемый в Linux для расчетаMemAvailable
для/proc/meminfo
.источник
Вы можете попробовать
memory_pressure
команду. Смотрите вывод моей системы (i5, 4 ГБ ОЗУ)источник
Команды Bash "free like" для Mac OSX.
Это второе переиздание этого поста. Сначала я получил два
-1
. Один, потому что я не описывал по-английски, он исправлен. Другой, потому что я использовалgawk
(который не является частью стандартной установки OS X), это также исправлено, я теперь используюawk
. Они-2
все еще там ;-). Лучше всего, пожалуй, сейчас тестировать и оценивать сами команды?Я пересмотрел свою первую идею создать только одну ориентированную на конечного пользователя команду с дружественным и легко настраиваемым дисплеем. Я сделал две:
free-like.sh
скрипт всегда ориентирован на «конечного пользователя», с большей точностью, «дружественным» и настраиваемым отображением, но с большим количеством вычислений и потреблением ресурсов,free-like-raw.sh
- команда, ориентированная на разработчиков, sysadmin и т. д., с меньшими затратами на вычисления и ресурсы, но также с меньшей точностью и менее «дружественным» отображением.Данные для физической памяти извлекаются из результатов команды
vm_stat
(которая возвращает результаты в размере блока). Неточность, возникающая в результате преобразования в байтах (number_of_blocks * block_size, значение вычислений по умолчанию), будет между 0 <размером блока. Данные для виртуальной памяти берутся изtop
команды. Неточность здесь связана с эталонной единицейtop
команды: кило, мега, гига.Расчеты производятся с использованием
awk
округлений (в отличие отbc
).awk
также быстрее чемbc
. Вы можете увидеть тестовый скрипт здесь: http://myblog.robert.sebille.name/article29.html#awk-bcВы можете просмотреть результаты команд в байтах (по умолчанию), в килограммах, мегагерцах или гигах, с x десятичными разрядами в случае free-like.sh и при запросе отображения в мегапиксельном гига.
Сценарии слишком длинные для публикации, но вы можете найти их в этой статье моего блога: http://myblog.robert.sebille.name/article29.html
Статья написана на французском языке, но она отображает один пример отображения для каждой команды и их интегрированную справку (
./free-like.sh -h
и./free-like-raw.sh -h
) на английском языке. Эти средства полностью описывают команды. В статье отображаются также коды.Английский не мой родной язык. Если кто-то хочет исправить ошибки во встроенной справке, он приветствуется;).
ваша.
источник
gawk
чего-то, что не является частью стандартной установки OS X.Это работает на моем $ PS1:
https://github.com/vigo/dotfiles-universal/blob/master/prompts/free_memory
(Рубиновая версия: https://github.com/vigo/dotfiles-universal/blob/master/prompts%2Ffree_memory.rb )
источник
vm_stat
показывает вам в килобайтах.Ниже приведен пример в мегабайтах:
Возвращает:
источник
В этом случае вы используете fishxhell на osx вместе с менеджером пакетов fisher.
Я написал следующее расширение: https://github.com/fisherman/free
Это полное повторение бесплатной команды для OSX. Смотрите сами
источник
top или htop также могут помочь решить проблему.
источник