Поскольку отключение подкачки и / или сжатия памяти не рекомендуется, а также не является стабильным вариантом после 10.9 Mavericks (несмотря на то, что параметр vm существует), я обречен после нескольких дней работы моего Mac с записью моей памяти в далеко от оптимального страницы памяти. Поскольку все становится так просто, что я могу заменить или сжать память, мне нужно перезагружать мою систему относительно часто (несмотря на 16 ГБ ОЗУ).
Я ищу решение, которое спасет меня от этих замедлений.
Например, в Linux zramswap не является обязательным. Также Linux имеет значение перестановки от 0 до 100, например, переменная
vm.swappiness=5
Также я могу рассмотреть решение о файловом кеше (который обычно беспорядочно пожирает тонны памяти без уважительной причины и не сбрасывает его до того, как оперативная память превращается в менее оптимальные чистые места сжатой памяти и подкачки). Например, здесь у ZFS есть опция для FreeBSD, чтобы максимизировать размер файлового кэша в памяти:
vfs.zfs.arc_max="1536M"
В macOS работает самый известный способ решения проблемы с файловым кешем
# /usr/sbin/purge
Который даже "cronnable". Так что это очищает файловый кеш, но вряд ли будет оптимальным. Это сбрасывает слишком много вещей. Кроме того, если что-то уже есть в подкачке и / или в сжатой памяти, несмотря на очистку, оно остается там, поэтому программы, использующие их, остаются медленными (и я чувствую эту медлительность, поверьте мне).
Есть ли какое-либо решение, чтобы снизить вероятность использования macOS кеша файлов, сжатой памяти или подкачки (но все равно оставьте первое для производительности, а второе для аварийного)?
источник
Ответы:
У меня та же проблема и я полностью сочувствую. Ненужная замена перед другими опциями (например, сокращение области кэшированных файлов) была проблемой в течение многих лет. В Мохаве все еще хуже, когда есть свободная память - даже не дисковая кеша, а полностью свободная - но система все равно решает использовать своп. На SSD каждая запись приводит к износу оборудования, так что это на самом деле (хотя и незначительным образом) наносит физический ущерб. Поскольку твердотельные накопители в современных компьютерах Mac припаяны к основной плате, ситуация является ужасной.
Мне много раз говорили очень уверенные постеры на таких сайтах, как это, что свободная память - плохая идея, потому что она сидит там, потребляя энергию и не имея никакой другой пользы. Дисковый кеш (как минимум) должен его потреблять. Я согласен с этим; Мохаве этого не делает, сжимая данные и выгружая их на диск, даже когда присутствуют гигабайты свободной памяти. На моем домашнем ноутбуке циклы сна делают его еще хуже. Прямо сейчас, после пробуждения, на машине свободно 11 ГБ, используется 5 ГБ и 6 ГБ. Цвет тарабарщины «давление памяти» - зеленый, что бы это ни значило. Это совершенно абсурдно и неоправданно сломано.
Раньше я думал, что должно быть что-то, что я устанавливал или делал неправильно, но на совершенно новых компьютерах Mac, работающих без дополнительной установки, потребление оперативной памяти при открытии большого количества вкладок в Safari достаточно скоро покажет использование пространства подкачки, несмотря на большое количество свободной памяти.
И да, это отстает - время от времени плохо. Это определенно влияет на производительность.
Я не знаю решения. Apple Engineering утверждает, что «работает как задумано».
источник
Я говорю это с добротой, но нет, нет, нет.
Не изменяйте основополагающий дизайн и процесс управления виртуальной памятью macOS, потому что у вас есть система или рабочая нагрузка, которая настолько сильно просачивается, что у вас накапливается своп накопления, и алгоритм ломается. Любое изменение, которое вы вносите в алгоритм, будет по-прежнему нарушаться, если у вас есть программное обеспечение, которое неправильно распределяет память, поэтому эту проблему, вероятно, необходимо вернуться, чтобы изолировать и определить, что вызывает нехватку памяти, чтобы сжатие и замена стали симптомом основной проблемы.
Теперь - у вас может быть очень веская причина, по которой вы хотите изменить виртуальную память, но микроядро macOS не предназначено для того уровня настройки, который есть в Linux, и если вам действительно нужно управлять виртуальными машинами так плотно, я бы рекомендовал Вы можете либо разместить этот код на отдельном сервере, поместив его в облако, на второе локальное устройство или даже виртуализировать гостевую ОС Linux поверх MacOS.
Тогда у вас будет лучшая память для реальной ОС и виртуального программного обеспечения (VMWare Fusion - моя первая общая рекомендация, но посмотрите Parallels или даже некоторые бесплатные опции, если у вас есть время и желание), чтобы вы могли поместить нужный код железный кулак, управляющий виртуальной памятью в Linux и позволяющий приложениям Mac быть приложениями Mac.
И просто для того, чтобы выйти на передний план, за семнадцать лет с момента поставки OS X я работал с десятками людей, которые пошли по тому пути, который вы предлагаете, - найдите случай, когда виртуальная память сигнализирует о проблеме, а затем измените виртуальную машину, чтобы преодолеть эти трудности. В любом случае, в программном обеспечении нам приходилось исправлять приложения или определять, где мы работаем, вместо того, чтобы находить магические настройки или унижения, которые приносили больше вреда, чем пользы.
Я призываю всех попробовать эти вещи - особенно если у вас есть желание узнать внутреннюю часть операционной системы, но предпосылка здесь о том, что виртуальная машина нуждается в изменении, кажется не звучит правдоподобно из-за предоставленных деталей или из-за длительного опыта попыток это в прошлом. Пожалуйста, дайте нам знать, если вы найдете настройку, которая работает для вас, и не голосуйте против других людей, если они предлагают что-то - это то, как мы все учимся, хэшируя инженерные и программные проблемы - даже несмотря на то, что в конце концов это не сработало ,
источник
Первая и лучшая линия защиты - убивать процессы или службы, которые не нужны.
Тогда вы можете контролировать сжатие vm:
Установите эти переменные с помощью команды nvram:
Есть больше настроек, с которыми можно поиграть и которые доступны аналогичным образом, но все они, похоже, не стоят того
источник