Я уже некоторое время использую зашифрованную систему домашних папок Ubuntu и не заметил каких-либо замедлений, за исключением двух конкретных случаев.
du -s
в своей домашней папке, это занимает в несколько раз больше времени, чем при работе с теми же данными в незашифрованном разделе. Похоже, что оба имеют отношение к доступу к нескольким тысячам файлов без реального чтения каких-либо их данных, что, по-видимому, означает, что системе придется обходить множество и множество inode. Я не могу понять, почему это происходит медленнее в ecryptfs, чем в том случае, если не используется шифрование, хотя это все равно должно быть связано с IO, а не с CPU, даже если все inode зашифрованы.
У кого-нибудь есть идеи?
Вот почему, основываясь на объяснении одного из ведущих разработчиков Canonical:
blockquote>
Получение списка всех имен файлов в каталоге требует декодирования , анализ и расшифровка нижних имен файлов.
Вызовы stat () из du вызывают поиск, для которого требуется выделить индекс eCryptfs, прочитать часть метаданных нижнего файла, проверить, что это файл eCryptfs, а затем проанализировать незашифрованный файл в установите поле i_size в inode eCryptfs. Имейте в виду, что чтение метаданных из нижней файловой системы включает чтение страницы в кеш страниц нижней файловой системы.
Проще говоря, проблема не в скорости ввода-вывода, а в IOP - в огромном количестве IOP! 9,10 и 11,10 .
Возможно, вы захотите рассмотреть dm-crypt, который исторически был быстрее, а у все еще есть преимущество .