После двухнедельного использования FileVault я перевёл свой домашний каталог на обычную схему без шифрования. Причина в том, что субъективно типичные файловые операции стали выполняться медленнее. Например, при открытии iTunes на списке приложений под iPhone процесс отрисовки иконок достаточно заметен. Были и другие случаи, которые мне доставляли дискомфорт. Мои данные не содержат каких-то критичных сведений, все пароли зашифрованы, поэтому я и откатился обратно. Сразу же почувствовал, что ноутбук стал летать.
Но до отката я провёл несколько тестов файловой системы программой QuickBench, чтобы показать различие в производительности при использовании FileVault и без него. Диск - штатный для MacBook Pro 2.8 GHz 500 GB 5400 rpm Hitachi.
Тест чтения/записи без FileVault:
Тест чтения/записи с FileVault:
При включенном FileVault при работе с данными чанки, из которых состоит SparseBundle Image, считываются в память и за счёт этого производится кеширование. Поэтому скорость последовательного чтения и записи, а также случайной записи высока до блоков 64 KB включительно, после чего резко падает и становится хуже, чем без использования FileVault. Особенно это проявляется для случайного чтения, которое как раз и применяется при операциях, похожих на загрузку иконок приложений в iTunes.
Тест чтения/записи файлов 2-10 MB без FileVault:
Тест чтения/записи файлов 2-10 MB c FileVault:
Скорость записи с включённым FileVault падает чуть ли не в 4 раза для файлов от 7 MB. Только для файлов 2 MB она высока за счёт размера чанка и кеширования. Скорость чтения не так сильно деградирует, но всё-таки процентов 15 есть.
Тест чтения/записи файлов 20-100 MB без FileVault:
Тест чтения/записи файлов 20-100 MB с FileVault:
Скорость записи с FileVault уменьшается процентов на 50%. Скорость чтения также страдает.
Делаем вывод, что некоторые операции с FileVault быстрее за счёт кеширования, но интегральная производительность хуже. Поэтому включать FileVault нужно только для тех случаев, когда это действительно необходимо. Если же вы хотите зашифровать свои данные, то лучше сделать отдельный шифрованный Sparse Bundle Image, в котором хранить только критичные данные (и не запоминать в KeyChain пароль к нему). Краткое описание, как его создать в Terminal.app, можно посмотреть в моей статье ”Работа с образами дисков в Terminal.app (hdiutil)” (это же можно сделать и через Disk Utility).