В Linux я использую noatime,nodiratime,nobarrier,data=writeback
параметры монтирования, чтобы /etc/fstab
обменять безопасность/непротиворечивость/целостность файловой системы на скорость, что имеет смысл для локальной разработки. Есть ли способ сделать что-то подобное или сделать такой компромисс для других разработчиков OS X в моей команде?
Использование файловой системы по умолчанию при установке OS X/macOS
На справочной странице для монтирования в macOS перечислены только две опции, связанные с производительностью hfsplus:
- async All I/O to the file system should be done asynchronously. This can be somewhat dangerous with respect to losing data when faced with system crashes and power outages. This is also the default. It can be avoided with the noasync option. - noatime Do not update the file access time when reading from a file. This option is useful on file systems where there are large numbers of files and performance is more criti- cal than updating the file access time (which is rarely ever important).
noatime
Таким образом, остается только возможность дальнейшего улучшения поведения по умолчанию. Поскольку в macOS нет, fstab
вам нужно (пере)монтировать файловые системы другим способом.
Самый популярный поисковый движок для автоматического повторного монтирования перечисляет этот метод:
Создайте файл с com.noatime.plist
именем /Library/LaunchDaemons
. Если у вас есть только 1 раздел SSD — именно с него загружается ваша ОС — это все, что вам нужно.
<?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.noatime.root</string>
<key>ProgramArguments</key>
<array>
<string>/sbin/mount</string>
<string>-vuwo</string>
<string>noatime</string>
<string>/</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Установите владельца файла с помощью команды
sudo chown root:wheel /Library/LaunchDaemons/com.noatime.plist
sudo chmod 644 /Library/LaunchDaemons/com.noatime.plist
Перезагрузите систему или
sudo launchctl load -w /Library/LaunchDaemons/com.noatime.root.plist
Для проверки введите команду mount
в терминале. Вы должны увидеть noatime
в списке атрибут вашей файловой системы.
Но что он делает? Ну, проще говоря: он выполняет эту команду во время загрузки (ну, после загрузки, во время последовательности загрузки для остальных)
mount -vuwo noatime /
Я предполагаю, что вы имеете представление о том, что mount
делает команда « », но посмотрите на параметры:
-v
= многословный; на самом деле... это не обязательно, так как это безголовая команда выше; хотя предположительно это может где-то отображаться в системном журнале и в случаях сбоя
-u
флаг -u
указывает на то, что состояние уже смонтированной файловой системы должно быть изменено. (К этому моменту последовательности загрузки наши файловые системы уже смонтированы)
-w
монтировать файловую систему на чтение-запись - наверное не на 100% нужно)
-o
noatime (Установите параметр noatime)
Переход с альтернативными вариантами файловой системы в целом
Файловые системы Apple довольно плохи с самого начала , и поддержка альтернативных файловых систем также отсутствует. Но это не значит, что у вас полностью нет вариантов.
bmike
Росс Паттерсон
мммммм
Росс Паттерсон