Mac OS X sysctl отримує загальний і вільний обсяг пам'яті


11

Як потрапити на MAC OS X з використанням sysctl і вільної пам'яті? Шукали sysctl -a | grep vm або sysctl -a | grep mem але не знайшли нічого відповідного.


Відповіді:


8

Ви цього не робите.

Ну, крім загального обсягу пам'яті, який ви могли б знайти sysctl -a | grep mem ( hw.memsize = 4294967296 на моїй машині).

vm_stat відображає ту ж саму інформацію, як Activity Monitor.app Вам потрібно просто збільшити потрібне значення за розміром сторінки. Обидві дані надаються у виході.


vm_stat: безкоштовні сторінки: 12054 .. 12054 * 4096/1024/1024 = 47.08 і монітор активності показує: 103 МБ grab.by/6KSD Вихід VM_stats: pastebin.com/BJcxPswv Чому я отримую неправильні значення?
kesrut

1
Додати Pages speculative до вільних. Ви могли помітити, що free + active + inactive + wired down не додає загальний розмір, який відображається в Activity Monitor.
Daniel Beck

3
grep здається не потрібним - на моєму MacBook Pro, sysctl hw.memsize також працює і друкує hw.memsize: 8589934592
ssc

3
top -l 1 | grep PhysMem: | awk '{print $10}'

top -l 1 працює top в режим реєстрації (наприклад, виведення файлу, а не виведення на дисплей / термінал) для однієї ітерації, а потім виходу. The grep / awk фільтри для вільної пам'яті в top вихід.


YMMV. На Сьєррі, top -l 1 | grep PhysMem: дає мені PhysMem: 9674M used (1752M wired), 6701M unused. тому я використовував top -l 1 | grep PhysMem: | awk '{print $6}'. Дякую!
pyb

1

Чому б не скористатися top для перегляду використання пам'яті в реальному часі?

ОНОВЛЕННЯ:

Можна використовувати такі команди:

sysctl -a | grep hw.usermem
sysctl -a | grep hw.physmem

Для повного типу списку людина sysctl в терміналі.


Можливо для використання в скрипті.
Daniel Beck

2
Обидва usermem і physmem відображати марні значення для систем, що перевищують 2 Гб оперативної пам'яті. Обидва, ймовірно, обмежені підписаним 32-бітним цілим числом.
Daniel Beck

Може бути, я можу використовувати верхню, щоб отримати один вихід. Після того, як я отримаю вихід я розібрати необхідні значення.
kesrut

Непридатне використання grep... sysctl hw.memsize = всього, sysctl hw.physmem, sysctl hw.usermem
TrinitronX

@DanielBeck має рацію, hw.memsize це те, що ви, ймовірно, хочете для всього. Дивіться мій коментар тут для отримання додаткової інформації
TrinitronX

1

Mac OS X / Linux

$ sysctl -a | grep '^hw\.m'
hw.memsize: 8589934592

Це виглядає як незначна зміна існуючих відповідей. Напевно, більш доречний як коментар.
fixer1234

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.