Довольно сложный Существуют значительные различия между файловыми системами, о которых вы упомянули, и определение влияния этих различий на скорость, IMHO, не тривиально и зависит от того, какие операции будут выполнены.
Во-первых, давайте откажемся от возможности установки вашей корневой файловой системы на раздел FAT или NTFS. Эти файловые системы не совместимы должным образом с ядром Linux, и разрешения файловой системы Linux на них не работают должным образом, поэтому у вас будет много интересных проблем.
Примечание . FAT32 - хороший выбор для установочных носителей USB, а NTFS - хороший вариант в сценарии двойной загрузки (с Windows) для разделов, которые вы хотите использовать для хранения личных вещей (например, медиатека), которые должны быть доступны. на Ubuntu (или любую другую систему Linux) и Windows. Системы Linux могут читать (и записывать) разделы NTFS, если они были правильно смонтированы, но разделы ext * не легко читаются для Windows (насколько я знаю).
Системы ext * были разработаны для использования с ядром Linux. Использование ext2,3 или 4 для установки Ubuntu было бы совершенно разумным. Вероятно, самые большие различия между ними
- ext2 не является журналированием
- ext3 ведет журнал, но в остальном имеет структуры данных и функции, аналогичные ext2
- ext4 ведет журналирование и имеет некоторые функции, улучшающие производительность, включая более быстрый алгоритм распределения блоков по сравнению с более ранними системами ext *, хотя он имеет схожие структуры данных.
Я думаю, что важно отметить, что скорость не является единственным фактором при выборе файловой системы. Ext4 имеет меньше ограничений, чем более ранние версии, что позволяет использовать более крупную файловую систему, неограниченное количество подкаталогов и т. Д. Некоторые считают, что Ext3 более проверен, безопаснее и с меньшей вероятностью потери данных. Я постараюсь сосредоточиться на скорости здесь, упоминая только самые существенные вещи помимо производительности.
Чего ждать? Журналирующее? 1
Журналирования файловой системы , в общем, ведет журнал изменений , которые еще не были записаны в основной части файловой системы. Это сделано для того, чтобы в случае сбоя было легко проверить согласованность файловой системы, сравнив журнал с тем, что было записано в основной области файловой системы. Это означает, что скорость проверки файловой системы намного выше с ext3 и ext4. Кроме того, поскольку ext4 позволяет маркировать нераспределенные блоки, проверка их может быть пропущена, что делает fsck
еще быстрее.
Ext4 также проверяет контрольную сумму журнала (что позволяет меньше операций ввода-вывода при записи), что дает небольшое общее увеличение скорости по сравнению с ext3.
Проверка согласованности файловой системы может не потребоваться очень часто, а журналирование обходится дорого - больше операций записи на диск. Это не только плохо сказывается на сроке службы скоростного твердотельного накопителя, но и может снизить производительность (запись занимает много времени). Общее мнение, похоже, заключается в том, что журналирование стоит своих затрат.
Улучшающие производительность возможности ext4
Ext4 поддерживает fallocate()
системный вызов для предварительного выделения места для файла. Ядро выделяет некоторые блоки и помечает их как инициализированные без записи в них, что намного быстрее, чем запись нулей в пространство, как это делалось в старых файловых системах.
Он также использует отложенное выделение (или выделение при сбросе ), которое группирует выделение (вместо того, чтобы выполнять много маленьких), таким образом, стремясь уменьшить использование ЦП и избежать фрагментации.
Ext4 обратно совместим с ext2 и ext3, что означает, что файловые системы ext2 и 3 могут быть смонтированы как ext4 и обладают умеренным выигрышем в производительности, поскольку могут использоваться некоторые функции, такие как новый алгоритм выделения блоков.
Другие файловые системы
Ext * - не единственные полностью совместимые с Linux файловые системы, хотя они являются самыми известными и наиболее протестированными. Другие файловые системы используют альтернативы журналированию и имеют инновационные функции, которые могут влиять на производительность. Btrfs , например, использует копирование при записиметод сохранения целостности файловой системы вместо журнала. Он имеет различные структуры данных для систем ext *. Насколько мне известно, Btrfs, как известно, не обеспечивает более высокую общую производительность, чем ext4, но считается особенно подходящим для архивного хранения фото-видеофайлов, поскольку они менее подвержены деградации. Он позволяет проверять и очищать целостность файловой системы во время использования, что может сэкономить время в зависимости от вашего варианта использования. В будущем Btrfs или другая инновационная файловая система могут быть усовершенствованы, чтобы убедительно превзойти ext4 по общей скорости.
Вывод
Большинство пользователей Ubuntu, ищущих хорошую производительность, сейчас захотят придерживаться ext4 ...
1 Эта и другие концепции файловой системы Linux очень хорошо объяснены в статье «Понимание ядра Linux» .