Оптимизируйте файловую систему для скорости над целостностью

В Linux я использую noatime,nodiratime,nobarrier,data=writebackпараметры монтирования, чтобы /etc/fstabобменять безопасность/непротиворечивость/целостность файловой системы на скорость, что имеет смысл для локальной разработки. Есть ли способ сделать что-то подобное или сделать такой компромисс для других разработчиков OS X в моей команде?

Какое оборудование используют разработчики? Какие носители информации? Какая скорость соединения? (Вы можете открыть Системную информацию и начать с Хранилища и двигаться вверх по цепочке). Кроме того, что сейчас является узким местом в рабочем процессе разработчика?
@bmike Метод, который я использую в описании, может быть использован для достижения компромисса, который я описываю в описании, практически для любой файловой системы практически на любом носителе под Linux. Какое отношение скорость связи имеет к файловым системам, как указано в заголовке моего вопроса? Кроме того, согласно описанию, это компромисс, который я хочу знать, а не узкое место.
Дайте разработчикам твердотельные диски — это имеет большее значение, чем изменение параметров, и для разработчика может быть оправдано по затратам за счет сэкономленного времени.
@Mark В Linux с современным и быстрым SSD указанные выше параметры по-прежнему значительно сокращают время выполнения тестов для моих проектов, тесты которых должны выполняться с реальной БД, что значительно ускоряет мою повседневную разработку.

Ответы (1)

Использование файловой системы по умолчанию при установке 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% нужно)

-onoatime (Установите параметр noatime)

Переход с альтернативными вариантами файловой системы в целом

Файловые системы Apple довольно плохи с самого начала , и поддержка альтернативных файловых систем также отсутствует. Но это не значит, что у вас полностью нет вариантов.