недавно я восстановил свой второй винчестер. и захотелось перенести на него систему. но встал вопрос: какую файловую систему выбрать? с давних пор я доверял свои файлы reiserfs. было время, когда я использовал reiser4. разные тесты в интернете втолковывают нам абсолютно противоположную информацию. и я решил, что лучший тест — это когда ты его делаешь сам
дисклаймер: я ни в коем случае не претендую на объективность представленной информации. я всего лишь хочу выбрать идеальную файловую систему для СВОЕГО компьютера. буду счастлив, если кому-то мои труды окажутся полезными.
изначально планировалось протестировать ext3, reiserfs, reiser4. но, раз уж представилась такая возможность, я включил в тест еще и ext4dev.
оборудование, на котором производилось тестирование:
Intel Celeron Tualatin 1.3@1.75 / FIC i815EP UDMA100 / 512 SDRAM
1. винчестер №1: SAMSUNG SV3002H [системный]
root@tualatin1750 # hdparm -tT /dev/hda
/dev/hda:
Timing cached reads: 270 MB in 2.01 seconds = 134.24 MB/sec
Timing buffered disk reads: 86 MB in 3.07 seconds = 28.03 MB/sec
2. винчестер №2: FUJITSU MPG3409AH EF [его я и тестировал — был смонтирован на /mnt/test]
root@tualatin1750 # hdparm -tT /dev/hdb
/dev/hdb:
Timing cached reads: 270 MB in 2.01 seconds = 134.64 MB/sec
Timing buffered disk reads: 106 MB in 3.02 seconds = 35.05 MB/sec
система — Gentoo Linux Stage 1, собранный с ACCEPT_KEYWORDS=»~x86″ [нестабильная ветка].
ядро — 2.6.19-rc5-mm2 [Preemptible CFQ]
немного о методике тестирования. измерения проводились под root’ом, без иксов. после каждого пункта теста раздел перемонтировался для очищения кэша. после каждой серии тестов создавалась новая файловая система и компьютер перезагружался. создавался единственный раздел на всем винчестере в 40 гигабайт. опции монтирования я использовал следующие:
ext3 -o noatime
ext4dev -o noatime,extents
reiserfs -o noatime,notail
reiser4 -o noatime
итак, поехали!
первый тест — посмотрим на работу со множеством небольших файлов. конкретнее — на запись. для приближения к реальности, я решил взять папку /usr
time cp -r /usr /mnt/test
ext3 31m53s
ext4dev 31m19s
reiserfs 30m40s
reiser4 29m18s
первый же тест — и победа за reiser4. в принципе, давно известно о быстрой работе ФС-ок от Ханса Рейзера со множеством мелких файлов. посмотрим, что будет дальше.
второй тест — сравниваем скорость удаления множества мелких файлов. удаляем все ту же папку /mnt/test/usr:
time rm -rf /mnt/test/usr
ext3 3m56s
ext4dev 2m57s
reiserfs 0m57s
reiser4 2m32s
и опять — первенство за Рейзером. только на этот раз версии 3.6. ext4dev опять показывает неплохие подвижки по сравнению с ext3.
третий тест — копирование 1 большого файла, коим я выбрал недавно закачанный из осла фильм X-Files.
time cp /mnt/win2000/Downloads/x-files.avi /mnt/test
ext3 0m37s
ext4dev 0m29s
reiserfs 0m37s
reiser4 0m31s
ext4dev потрясающим образом вырывается вперед. найти причину этого мне не удалось, но даже при многократном перемонтировании и перезапуске теста результат оставался идентичным. reiser4 опять на коне.
четвертый тест — смотрим скорость считывания этого же файла. посему просто копируем его в /dev/null
time cp /mnt/test/x-files.avi /dev/null
ext3 0m17s
ext4dev 0m17s
reiserfs 0m17s
reiser4 0m17s
как видим, все ФС показывают равную производительность при чтении, что еще раз подтверждает, что ограничивающим фактором в данном случае является пропускная способность интерфейса винчестера и скорость линейного чтения.
далее пошли более реальные задачи.
пятый тест — скорость архивации. какой же линуксоид не любит быстрой езды tar? в качестве объекта наших перверсий я выбрал ядро Линукса
time tar -cf linux.tar linux-2.6.19-rc5-mm2
ext3 1m16s
ext4dev 1m29s
reiserfs 0m31s
reiser4 0m38s
как говорится, ой! ext4dev серьезно отстает. сказывается еще неотточенный код? возможно. Рейзеры рулят непомерно. reiser4 немножко отстает от своего предшественника.
шестой тест — исследуем скорость распаковки того же самого архива, что только что создавали [саму папку с исходниками я удалил, диск само собой перемонтировал]:
time tar -xf linux.tar
ext3 0m33s
ext4dev 0m27s
reiserfs 0m28s
reiser4 0m14s
отлично! reiser4 ведет с огромным отрывом. ext4dev немного опережает reiserfs. ext3, как всегда, плетется в хвосте.
финальный, седьмой тест — скорость компиляции ядра.
make clean #очищаем исходники
export FEATURES=»-ccache» #отключаем ccache — кэш компилятора
time make
ext3 13m48s
ext4dev 13m47s
reiserfs 13m58s
reiser4 15m3s
во-от, где она вылезла — прожорливость рейзера до системных ресурсов, и до ЦП в частности. небольшое разочарование… ну что ж, у самой хорошей вещи есть свои недостатки
конечно, множество пунктов остались нерассмотренными, как то: надежность, ресурсоемкость… но это ведь не последняя редакция документа
а выводы каждый делает для себя. пусть это будет домашним заданием
кому легче смотреть результаты в виде таблицы — вот.
никогда не обращал внимание на скорость фс главное, чтобы работало и не сыпалось при отключении питания, сейчас вот использую ffs, нет журнала, зато есть soft updates. При общем повышении производительности при переходе на openbsd раза в два, понижения скорости работы фс как-то не заметил
вот тут еще есть тест, верней, его перевод на «великий и могучий».
А у меня ext3 по старинке, скорость в принципе мало волнующий фактор. А надёжность проверяется очень легко — начинаешь копировать файл и выключаешь питание
Собираюсь переносить систему на другой жесткий диск, пока планирую, как и на старом, ext3.