Оптимизация Mac OS X под использование SSD-диска
Относительно недавно стали выпускаться Маки (преимущественно в мобильном варианте) с использованием SSD-дисков вместо обычного HDD. Достоинств у твердотельных накопителей (именно так можно перевести на русский язык аббревиатуру SSD) достаточно много, но, в то же время, есть и недостатки, с которыми можно и нужно бороться, дабы продлить срок жизни накопителя. Полностью удалить недостатки, которые имеют SSD-диски вследствие существующей технологии, мы не сможем, а вот оптимизировать операционную систему, дабы минимизировать отрицательные последствия, нам вполне по силам. Собственно этим мы и займемся в рамках текущей статьи.
Для начала — немного истории. В далеком 1978 году, компания StorageTek разработала первый полупроводниковый накопитель, основанный на RAM-памяти. RAM-накопители — это накопители, основанные на использовании энергозависимой памяти, аналогичной той, что используется в ОЗУ компьютера. Основными достоинствами RAM-накопителей являются сверхбыстрые чтение, запись и поиск информации, а недостатком — очень большая стоимость (от 80$ за 1ГБ). В 1995 году компания M-Systems представила первый полупроводниковый накопитель на Flash-памяти. Flash (NAND)-накопители — это накопители, основанные на энергонезависимой памяти, именно такого типа накопители используются для установки в мобильные компьютеры от компании Apple. Данные накопители отличаются от обычных, прежде всего, высокой скоростью поиска информации (сопоставимой со скоростью поиска в оперативной памяти Мака). Показатели скорости чтения/записи, с недавнего времени, стали сопоставимы с аналогичными показателями традиционных жестких дисков, а в некоторых случаях существенно превосходят их. Что касается стоимости NAND-накопителей, то она существенно ниже стоимости RAM-никопителей (от 2$ за 1Гб). Современные SSD-диски, устанавливаемые в десктопы и ноутбуки как раз относятся к такому типу памяти.
Среди прочих преимуществ SSD-накопителей перед традиционными HDD-дисками можно выделить следующие:
- Отсутствие подвижных частей
- Широкий диапазон рабочих температур
- Полное отсутствие шума из-за отсутствия движущихся частей
- Скорости чтения и записи, в основном, ограничены только пропускной способностью используемого интерфейса (например, SATA III — до 6 ГБ/с)
- Низкая потребляемая мощность
- Высокая механическая стойкость
Самый важный и, пожалуй, самый критический недостаток SSD-накопителей — ограниченное числ циклов перезаписи (зависит от типа используемой флэш-памяти). Так, SSD-диски, использующие MLC флэш-память, позволяют осуществлять примерно 10 тысяч циклов перезаписи данных, а диски на основе более дорогостоящнй SLC флэш-памяти существенно больше — более 100 тысяч циклов. В принципе, пройдет немало времени, пока SSD-накопитель выработает свой ресурс, но ведь всегда хочется, чтобы это произошло как можно позже. С первым недостатком тесно переплетается второй, заключающийся в проблеме совместимости существующих SSD-накопителей со многими операционными системами, в число которых входит и Mac OS X. Проблема заключается в том, что многие существующие ОС не учитывают специфику SSD-и дополнительно изнашивают их (файлы подкачки, различные кеши и пр.).
Если первый недостаток никак пока не решить — технология есть технология, то со вторым можно и побороться.
Самое главное для SSD-диска в Mac OS X — активация технологии TRIM. На родных SSD в Mac OS X 10.6.8 и старше эта технология будет работать изначально, а для неродных нужна специальная утилита TRIM Enabler. Про TRIM мы уже писали раньше, напомним лишь, что использование этой технологии позволяет избежать замедления работы SSD из-за засорения ячеек памяти.
Остальные советы такие:
1. ОТКЛЮЧАЕМ КЭШИРОВАНИЕ В ВЕБ-БРАУЗЕРЕ
Как правило, любой веб-браузер использует определенную часть дискового пространства для кэширования временных файлов при просмотре веб-страниц и других операций. Соответственно, чем больше пользователь посещает веб-страниц и прочих веб-сервисов, тем активнее ведется работа с кэшем в веб-браузере, что неблаготворно скажется на сроке жизни SSD-накопителя. Поэтому, дабы нивелировать негативные последствия веб-серфинга идем в настройки веб-браузера, используемого по умолчанию в системе и отключаем кэширование. В качестве примера расскажем как отключить кеш в веб-браузере Safari 5.0.5.
- Включаем дополнительный раздел Разработка в меню программы. Для этого в меню настроек Safari переходим во вкладку Дополнения и отмечаем там пункт Показать меню «Разработка» в строке меню.
Заходим в появившийся раздел Разработка и отмечаем пункт меню Отключить кэши. Теперь Safari будет загружать графику, страницы и другие ресурсы из сети в реальном времени вместо использования ресурсов, сохранённых в кэше.
2. ОТКЛЮЧАЕМ РЕЖИМ HIBERNATION
Режим гибернации позволяет при выключении компьютера записать все содержимое оперативной памяти на жесткий диск, а затем, при повторном включении компьютера, продолжить прерванную работу, словно никакого выключения и не было. В MacBook данный режим в обязательном порядке используется при работе от батареи, что позволяет избежать потери данных, когда в батарее кончается заряд. Несомненно, это очень удобно, но все дело в том, что при активном режиме гибернации, на диске MacBook’а всегда создается файл, равный объему оперативной памяти, установленной в компьютере. Учитывая то, что объемы существующих SSD-дисков не так уж и велики и в целях экономии приходится бороться за каждый мегабайт, потеря, как минимум, 2 Гб дискового пространства, будет являться непозволительной роскошью.
Для осуществления операции запускаем Терминал и вводим три нехитрые команды.
- Проверяем текущий режим гибернации:
[php]sudo pmset -g | grep hibernatemode > ~/Desktop/current_mode.txt[/php]
Необходимые цифры сохранятся в файл на Рабочем столе (именно эти цифры нужно будет использовать при необходимости восстановить отключенный режим). Также не забываем, что при выполнении команды, начинающейся с sudo, будет необходимо вслепую ввести пароль своей учетной записи).
- Отключаем гибернацию:
[php]sudo pmset -a hibernatemode 0[/php]
Обратное включение режима осуществляется повторным вводом команды с заменой цифры «0» на «3» или на «7» (при использовании защищенной виртуальной памяти).
- Удаляем файл, оставшийся после отключения режима:
[php]sudo rm /private/var/vm/sleepimage[/php]
После завершения всех операций перезагружаем MacBook.
3. ОТКЛЮЧАЕМ SPOTLIGHT
Замечательная функция системного поиска, являющаяся ключевой технологией Mac OS X, при своей работе активно использует кэширование данных индексирования содержимого диска и поэтому является следующим кандидатом на отключение. Для отключения кэширования заходим в Системные настройки/Spotlight/Конфиденциальность и добавляем SSD-диск или разделы на нем в список исключений.
4. ОТКЛЮЧАЕМ ПЕРЕВОД SSD-НАКОПИТЕЛЯ В РЕЖИМ СНА
Данный режим служит для экономии энергии и переводит жесткий диск в режим сна при простое в течении определенного времени. При использовании SSD-накопителя с его низким энергопотреблением польза от использования данного режима под вопросом. Для отключения перевода диска в режим сна заходим в Системные настройки/Экономия энергии убираем отметку с пункта По возможности переводить диск(и) в режим сна.
5. ОТКЛЮЧАЕМ ФУНКЦИЮ ФИКСИРОВАНИЯ ПОСЛЕДНЕГО ДОСТУПА К ФАЙЛУ
Сокращенно данная функция называется noatime. Каждый раз, когда система обращается к какому-либо файлу на диске, данная функция также делает запись на диск. Во избежание сокращения использования циклов перезаписи на SSD-диск, функцию noatime можно оключить, тем более, что это не грозит никакими серьезными последствиями.
Для того, чтобы отключить эту функцию, создаем файл с именем com.my.noatime.plist и помещаем его в папку /Library/LaunchDaemons. Содержание файла должно быть следующим:
[php]<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.nullvision.noatime</string>
<key>ProgramArguments</key>
<array>
<string>mount</string>
<string>-vuwo</string>
<string>noatime</string>
<string>/</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>[/php]
Затем в окне Терминала вводим следующие команды:
[php]cd ~/desktop
sudo chown root:wheel com.my.noatime.plist
sudo mv com.my.noatime.plist /Library/LaunchDaemons/
sudo shutdown -r now[/php]
Перезагружаем компьютер.
6. ОТКЛЮЧАЕМ ФАЙЛ SWAP (ФАЙЛ ПОДКАЧКИ)
Особенность Mac OS X (да и многих других операционных систем) такова, что при нехватке свободной оперативной памяти она начинает сбрасывать часть данных из нее на жесткий диск, в так называемый файл подкачки. Это позволяет освободить необходимый объем памяти для более важных целей, нежели хранение неиспользуемых данных, но самое интересное в том, что Mac OS X начинает думать, что памяти уже не хватает уже тогда, когда фактически свободной памяти еще вполне достаточно. Если же в процессе работы пользователь захочет вернуться к тем данным, которые система уже сбросила на жесткий диск, то система может начать «подвисать» на некоторое время, при этом обращение к жесткому диску заметно возрастает. Надо ли говорить о том, что скорости доступа к оперативной памяти и накопителю различаются в сотни, а то и тысячи раз, и пользователь, при активном использовании файла подкачки заметно теряет в скорости работы Мака. Поэтому, в случае наличия достаточно большого объема оперативной памяти (от 4 ГБ и выше) имеет смысл отключить файл подкачки, тем самым выйграв в общей скорости работы системы, а в случае использования SSD-накопителя — уменьшения ресурса циклов перезаписи последнего. Для того, чтобы полностью отключить использование файла подкачки открываем Терминал и вводим следующую команду:
[php]sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist[/php]
Затем удаляем имеющиеся файлы подкачки (как правило, их несколько):
[php]sudo rm /private/var/vm/swapfile*[/php]
Для того, чтобы вернуть все обратно, используем такую команду:
[php]sudo launchctl load -wF /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist[/php]
НЕ РЕКОМЕНДУЕТСЯ отключение файла подкачки тем пользователям, у которых в компьютере установлено менее 4Гб или если они работают в ресурсоемких приложениях (например, в Adobe Photoshop обрабатывают изображения размером в несколько десятков мегапикселей). Определить объем памяти, достаточный для комфортной работы пользователя довольно просто — нужно, всего лишь, запустить утилиту Мониторинг системы и, загрузив компьютер приложениями, чаще всего использующимися в работе, посмотреть на значение параметра Использование swap. Если там стоит цифра «0», то можно смело отключать файл подкачки, в противном случае при нехватке памяти система может просто зависнуть.
7. ЧИСТИМ ЗАГРУЗОЧНЫЙ КЭШ
Еще одним маленьким преимуществом SSD-накопителей является быстрая перезагрузка (порядка 15 секунд). Если на вашем макбуке, остащенном SSD-диском такого не наблюдается, то, возможно, вам просто необходимо почистить загрузочный кэш. Для этого открываем Терминал и вводим следующие команды:
[php]sudo chown root:admin
sudo kextcache -system-prelinked-kernel
sudo kextcache -system-caches[/php]
Ну а самым продвинутым способом защиты SSD от записи различных временных файлов является создание виртуального выделенного диска (RAM Disk) в оперативной памяти и перенос на него папок временных файлов и кэшей. Про этот способ мы поговорим в скором будущем.