Тиск пам’яті не простий показник відсотка вільної пам’яті і, схоже, графік від 0 до 100%. sysctl
Значення vm.memory_pressure
розраховуються по відношенню до обчисленого мішені , яка відстежує співвідношення між вільною і неактивними сторінками пам'яті до дротових і активним сторінкам. Абсолютні лічильники переглядаються за vm_stat
допомогою інструменту командного рядка для перевірки детального розподілу віртуальної пам'яті. Джонатан Левін має чудову документацію на веб-сайті http://newosxbook.com/articles/MemoryPressure.html, яка охоплює як віртуальну пам’ять macOS, так і iOS і те, як вони обчислюють тиск у пам'яті, а також дії, що виконуються, коли індекс тиску високий.
Відповідна віртуальна пам'ять (vm), яка подає обчислення vm.memory_pressure
:
vm.page_free_count
- абсолютна кількість безкоштовних сторінок
vm.vm_page_free_target
- розрахункова ціль або мета для ситуації "без тиску"
vm.page_free_wanted
- що система vm хотіла б звільнити для зменшення поточного розрахованого показника тиску
Отже - якщо ви відстежуєте тиск пам’яті за допомогою монітора активності (або моєї перевірки значень sysctl програмно або в оболонці командного рядка), ви добре будете переглянути ці чотири значення:
sysctl -a vm | egrep "page_free|pressure"
З memory_pressure
Mavericks з'явилася нова команда, і коли я запускаю її, щоб перевести підсистему пам'яті у стан попередження - ви можете бачити, як тиск у пам'яті збільшується до жовтого діапазону.
Інструмент виділено близько 4 ГБ пам'яті на інструмент , як графік тиску постійно збільшується до такого стану , де , по- видимому графічний «Попередження» , рівень: sudo memory_pressure -l warn
. Як бачите, система до тиску використовувала 5,9 ГБ, а після - до 7,99 Гбайт, що навіть не потрібно складати через заміну та стиснення.
Подивившись, як vm_stat 15
показали результат попередження у відсутності вимірювальної підкачки, я вийшов з інструменту (Control-C) і потім запустив інструмент, щоб зробити тиск у пам'яті критичним:sudo memory_pressure -l critical
Я не давав цього запустити більше декількох хвилин, як підключення під час запуску сторінки, і як тільки інструмент сказав, що у мене на диску 5 ГБ оперативної пам’яті, я не хотів заповнювати диск і вийшов із цього інструменту.
Ви можете спостерігати, наскільки швидко система звільняла оперативну пам’ять після закінчення попередження, а також, як вона натрапила на «червону» територію, щоб показати, що система віртуальної пам’яті не могла стиснути достатньо сторінок, щоб уникнути переходу на диск. Моя здобута здогадка червоного кольору на тиск вказує на заміну та різке перерозподіл та / або час, коли вільні сторінки є меншими за кількість, яку система надає перевагу, і вона активно чистить неактивні сторінки та / або замінювати сторінки, які, як очікується, будуть використані для обміну. Аналогічно, система швидко відновлюється, як тільки виділяються розподіли та знімається тиск із системи віртуальної пам'яті.