Алексей Федорчук
Несколько лет назад я написал заметку о быстродействии файловых систем Linux’а , которую полагал последним своим сочинением на эту тему. Однако не получилось: всё время появлялись то новые устройства, то новые файловые системы. И каждый раз хотелось посмотреть на их быстродействие.
Вот и теперь: всё началось с того, что в инсталляторе openSUSE (и в программе Partitioner из её системы конфигурирования YaST — подробности здесь) я обнаружил штатную возможность создания файловой системы ext4 с отключённым журналированием. Как говорят, именно в таком виде она используется на серверах Google и, по слухам, демонстрирует научно-фантастическое быстродействие.
Разумеется, мне захотелось это проверить — ведь была возможность сделать это малой кровью, не напрягая память, как задать соответствующую опцию команде mkfs
. Ну а дальше одна файловая система потянула за собой другую — молодую и потому постоянно модифицируемую btrfs. А затем и третью — XFS, изрядно переработанную старушенцию, позиционируемую ныне как достойную конкурентку названным выше молодухам. Ну а тут уж ничего не оставалось делать, как померять заодно скорость и всех остальных файловых систем, тем более, что скоро они станут достоянием истории.
В качестве измерительной площадки выступал ноутбук, описанный ранее . Соответственно, винчестер его, со скоростью вращения 5400 об./мин. быстродействием не блистал. Тем не менее, некоторое представление о сравнительной скорости файловых операций можно получить и на нём. Да, разумеется, всё возможное энергосбережение на время замеров было отключено.
Сама методика сравнения была подробно описана ранее, поэтому лишь вкратце напомню, что измерялась скорость копирования
- набора flac-файлов общим объёмом со стандартный CD;
- дерева портежей Gentoo;
- большого avi-файла, слепленного из пяти видео-CD;
- стандартного, на компакт, iso-образа;
- дерева исходных текстов ядра Linux.
Дополнительно измерялась скорость удаления «деревьев» — портежей и ядра. Для единичных файлов этот параметр давно потерял всякий смысл.
Объектами сравнения выступали файловые системы:
- ext4 в четырёх ипостасях (без журналирования и в трёх его режимах);
- её ближайшие конкурентки — btrfs и XFS (отформатированные и смонтированные с режиме умолчаний программы Partitioner);
- уходящие в прошлое ext2 и ext3 — также с умолчальными параметрами;
- ReiserFS, перспективы которой представляются не ясными ввиду того, что поддерживать её некому.
Эти файловые системы последовательно создавались с помощью Partitioner’а на разделе диска объёмом около 45 Гбайт и перед следующим «забегом», разумеется, уничтожались.
Результаты изменений приведены в таблице и паре иллюстрирующих её диаграмм.
Копирование, сек. | Удаление, сек. | ||||||
Объекты | Flacs | Portages | Avi | Iso | Kernel | Portages | Kernel |
ext4 w/o J | 6 | 13 | 90 | 6 | 89 | 7 | 2 |
ext4 w J, b/w | 6 | 15 | 92 | 13 | 98 | 6 | 2 |
ext4 w J, ord | 6 | 24 | 89 | 13 | 98 | 6 | 1 |
ext4 w J, jour | 5 | 19 | 89 | 15 | 91 | 7 | 3 |
btrfs, default | 7 | 18 | 91 | 15 | 99 | 7 | 2 |
XFS, default | 5 | 15 | 90 | 13 | 104 | 7 | 2 |
ext2, default | 6 | 15 | 90 | 15 | 102 | 8 | 2 |
ext3, ordered | 6 | 14 | 103 | 15 | 101 | 14 | 2 |
reiser, default | 7 | 14 | 90 | 13 | 93 | 6 | 2 |
Таблица и диаграммы настолько красноречивы, что в комментариях почти не нуждаются. Разве что можно отметить, что по некоторым показателям ext4 без журнала действительно чуть опережает свои же журналируемые варианты, да и все остальные файловые системы тоже. Хотя в абсолютных цифрах выигрыш настолько мало, что о нём как-то даже неловко говорить.
Остальные результаты на удивление ровные. Разве что можно отметить единичные провалы ext4 и ext3 — для обеих в ординарном режиме журналирования. Для ext3 непредсказуемость результатов, в зависимости от опций монтирования, отмечалась всегда (в том числе и автором этих строк). Видимо, ext4 частично унаследовала эту её особенность. Но в режиме полного журналирования она на круг показывает результаты не хуже прочих.
А вот btrfs в своём нынешнем виде чудес быстродействия, как некогда, не являет. Возможно, что это следствие повышения её надёжности.
Не потрясает своей скоростью и усовершенствованная XFS — по единичным результатам она оказывается в числе худших. Хотя с грандиозным провалом при удалении файлов, имевшим место не так давно, кажется, покончено.
Что показательно, ext2 и ReiserFS, бывшие не так давно уверенными чемпионами в большинстве номинаций, ныне ничем особенным на общем фоне не выделяются.
Однако повторюсь ещё раз: во всех случаях речь идёт о столь ничтожной разнице в скорости, что принимать её во внимание было бы опрометчиво. И быстродействие ныне — это один из последних критериев, по которому следует выбирать файловую систему для настольного десктопа (в стопитцотый раз скажу, что о серверах тут речи не идёт).
Чем это можно объяснить? Двумя предположениями:
- во-первых, во всех «молодых» и «обновлённых» файловых системах узкие места с точки зрения быстродействия нынче ликвидированы;
- во-вторых, быстродействие «железа» достигло такой ступени, что нивелирует различия между файловыми системами при обычных пользовательских операциях с файлами — как ещё раньше оно снивелировало разницу для пользовательских задач, зависящих от мощности процессора.
Какое из них ближе к истине — судить не берусь. Однако факт на лицо: сравнение быстродействия файловых систем окончательно потеряло смысл. И нынешняя заметка, вероятно, будет таки последним моим сочинением по этому вопросу.
Разве что когда-нибудь в дистрибутивах Linux’а «искаропки» появится нативная поддержка ZFS, и опять взыграет ретивое. Но надежды на это мало: хотя все технические и юридические к тому препятствия устранены достаточно давно, никто из майнтайнеров этой возможностью не заинтересовался. Видимо, полагая, что это народу не нужно…
>> Но надежды на это мало: хотя все технические и юридические к тому препятствия устранены достаточно давно, никто из майнтайнеров этой возможностью не заинтересовался. Видимо, полагая, что это народу не нужно…
Видимо, пока идет расчет на btrfs, она ведь достаточно активно сейчас развивается.
zfs под linux уже пилят: http://zfsonlinux.org
Последняя версия — от 26 марта, коммиты на github’е регулярны.
2 Kido ZFS под Linux пилят года два — и не в одном направлении
в том числе и индийские программисты :)
Да вот только ни один майнтайнер ни одного дистрибутива этими опилками не воспользовался.
2 Aectann
Да. Как бы Крис от этого не открещивался, но btrfs — это действительно ответ Чемберлену
А теперь положение ZFS стало вообще двусмысленным во всех отношениях.
Я бы хотел родную ZFS в Linux. Поделал как-то раз по статье уроки для ZFS в виртуалке и вы знаете … многие вещи удивляют … например можно создать папку утилитами ZFS и сразу указать важность содержимого и ZFS будет хранить данные в нескольких блоках.
Я молчу про возможность обойтись без LVM и всё нужное сделать средствами ZFS.
Без ZFS вот сижу жду BTRFS с ядром линукса 3,5 в котором будет так нужное RAID 5,6.
Друг попросил сделать ему программный RAID на его местном серваке.
Хорошо было бы потестить еще и «межделмашевскую» JFS, поддержка коей была в Линухах в начале нулевых годов, да и попозже. Не в курсе, сейчас еще есть, чи рипнулась уже? :))
JFS сброшена с корабля современности окончательно?
2 Sergio и Vlav
JFS тестил очень давно — лет 10 назад. Никаких достоинств в ней не увидел, кроме задумчивости. С тех пор желания возвращаться не было.
При всем к Вас уважении (ибо, в молодости я жил Вашими статьями), не могу сказать одно: кто ж btrfs тестит с настройками по умолчанию? Нет, понятно, юзвери до этого не дойдут, но, если цель ИЗМЕРИТЬ производительность, а не показать, что на стандартном ядре с дефолтными настройками ВСЕ ОДИНАКОВЫ… Я — старый фанат reiserfs, живущий всеми машинами на gentoo-x64-3.3.8. Но, по работе, мне пришлось выбирать FS для виртуалки, которая планирует работать с миллионами картинок. Дома решил протестить варианты на Adaptec 6805 (5x3TB Hitachi@Raid5). Я был в трансе! С правильными настройками (ничуть не задевающими сохранность данных) btrfs лучше reiserfs на 150%. Это — не «красная цифра», а результаты тестов различными программами на кастомном ядре, запиленном под свои задачи. Bonnie++ — рекомендую жаждущим познать истину.
С уважением.