На домашнем компьютере озадачился выбором файловой системы для своего домашнего раздела и специального раздела для backup, пока что по критерию - производительность, о надёжности пока не беспокоюсь ибо бекапы рулят
Желание подобрать ФС возникло после того как ощутил разницу между копирование больших файлов на Ext4 и ReiserFS, ReiserFS видимо не для этого должна использоваться
Для тестов использовал наиболее типичные для моего домашнего компьютера задачи (копирование больших и маленьких файлов, поиск текста в исходниках, удаление хлама, make clean)
cmd1="cp -r /media/media4/video/best $dest"
cmd2="rsync -rlhtgopu /media/media4/backup $dest"
cmd3="grep linux -sir $dest/backup/wine-src/"
cmd4="find $dest -type f -delete"
- В качестве данных использовал DVDRipы фильмов и свой старенький backup (фотки и сорци кое каких собираемых руками программ)
- данные перемещались с Sata на IDE
- замеры проводились в помощью /usr/bin/time
- между тестами 10 минутные паузы, чтобы устаканить uptime
- раздел размещён на LVM
- размер ФС подобран так чтобы данные заполняли его на 2/3
1,7G /media/media4/backup/ - 40285 файлов (AD0 Foto home.e2i.bz2 Transmission video Video wine-src)
7,4G /media/media4/video/best/ - 4 файла DVDRIP
ext2 | ext3 | ext4 | xfs | reiserfs | btrfs | vfat | jfs | |
---|---|---|---|---|---|---|---|---|
копирование больших файлов: | 116.03 | 122.69 | 116.45 | 137.47 | 138.67 | 130.25 | 114.25 | 130.98 |
бекап домашней директории: | 115.33 | 124.25 | 99.61 | 220.50 | 119.25 | 98.44 | 159.65 | 172.21 |
поиск среди маленьких файлов: | 66.71 | 63.69 | 68.76 | 47.02 | 66.45 | 77.18 | 60.64 | 107.21 |
повторный поиск среди маленьких файлов: | 100.47 | 97.27 | 102.36 | 80.70 | 96.48 | 101.27 | 78.27 | 135.29 |
поиск и удаление файлов: | 8.09 | 7.51 | 6.40 | 82.59 | 10.22 | 13.53 | 12.45 | 15.67 |
средняя нагрузка на систему: | 1.85, 1.37, | 1.95, 1.39, | 1.99, 1.26 | 2.02, 1.64 | 2.00, 1.47 | 2.09, 1.37 | 2.02, 1.39 | 2.55, 1.99 |
Полным победителем оказывается vfat, открытая реализация ФС от МС - ужас, а ведь некоторых это может даже впечатлить
Но если отбросить архаику(ext2), экзотику(xfs,reiserfs) и извращения(vfat)(не скажу почему) и оставить наиболее распространённые и поддерживаемые разработчиками файловые системы то картинка проясняется, видим
сравнение фс | ext3 | ext4 | btrfs |
---|---|---|---|
копирование больших файлов: | 122.69 | 116.45 | 130.25 |
бекап домашней директории: | 124.25 | 99.61 | 98.44 |
поиск среди маленьких файлов: | 63.69 | 68.76 | 77.18 |
повторный поиск среди маленьких файлов: | 97.27 | 102.36 | 101.27 |
поиск и удаление файлов: | 7.51 | 6.40 | 13.53 |
средняя нагрузка на систему: | 1.95, 1.39, | 1.99, 1.26 | 2.09, 1.37 |
что у Ext3 вроде бы больше плюсов перед всеми, но Ext4 смотрится вкуснее особенно если выкинуть btrfs
сравнение фс | ext3 | ext4 |
---|---|---|
копирование больших файлов: | 122.69 | 116.45 |
бекап домашней директории: | 124.25 | 99.61 |
поиск среди маленьких файлов: | 63.69 | 68.76 |
повторный поиск среди маленьких файлов: | 97.27 | 102.36 |
поиск и удаление файлов: | 7.51 | 6.40 |
средняя нагрузка на систему: | 1.95, 1.39, | 1.99, 1.26 |
Похоже, что для обычного серферского компа, на котором крутится браузер с парой графических программ лучше подойдёт Ext4
Хотя если важнее поиск по файлам, работа с исходниками и системами контроля версий и переход на новые версии ядна не предвидится, то смысла использовать Ext4 нет
Для извращенцев:
xfs | reiserfs | vfat | jfs | |
---|---|---|---|---|
копирование больших файлов: | 137.47 | 138.67 | 114.25 | 130.98 |
бекап домашней директории: | 220.50 | 119.25 | 159.65 | 172.21 |
поиск среди маленьких файлов: | 47.02 | 66.45 | 60.64 | 107.21 |
повторный поиск среди маленьких файлов: | 80.70 | 96.48 | 78.27 | 135.29 |
поиск и удаление файлов: | 82.59 | 10.22 | 12.45 | 15.67 |
средняя нагрузка на систему: | 2.02, 1.64 | 2.00, 1.47 | 2.02, 1.39 | 2.55, 1.99 |
без комментариев
скрипт для тестирования файловых систем(как txt)
Использовать так (после правки путей!!!):
# создать пайп и запустить скрипт со списком имеющихся фаловых систем
mkfifo test_pipe; sudo ./test_fs.sh ext2 ext3 ext4 xfs reiserfs btrfs vfat jfs
# в другой консоли подключить к нему и наблюдать
tail -f test_pipe |grep -v "Command exited with non-zero status"
ps: Весьма смущает результаты повторного поиска, почему то он всегда долще чем первый на любых ФС, как будто ФС не умеют кешировать данные
pss: при создании и монтировании файловых системы применялись стандартные опции(смотреть тест), тоесть ни каких опций не применялось
psss: добавлены результаты тестирования jfs, результаты не радуют
серьёзные ссылки по теме производительности различных ФС: