В
прошлом тесте я выяснил, что BTRFS быстрее чем EXT4 при работе на мощном процессоре, HDD 7200 и использовании свежих ядер 4.х. Особенно прирост заметен при использовании сжатия LZO, которое экономит около 35% места на системном разделе. В последствии стал использовать новую ФС со сжатием и на слабеньком ноуте Asus X200MA со слабых процессором Intel Celeron N2830.
Вычитал на форуме, что у товарища с таким же ЦП были проблемы с производительностью при использовании сжатия (выяснилось, что сам неправильно приготовил) и я решил проверить это в цифрах, ведь в них есть истина.
Тестовый стенд:ЦП: Intel Celeron N2830 (Bay-Trail, 2x2,41)
ОЗУ: 4 ГБ 1600 МГц
ЖД: HGST HTS545050A7E680 (500 ГБ, 8 МБ, 5400)
1. Тестирование скорости копирования и удаления файлов.
Тесты проводились на одном и том же месте на ЖД, чтобы исключить разницу в характеристиках ЖД из-за положения раздела.
Для тестов использовались файлы из /usr, установленной Ubuntu 14.04 общим весом 3.1 ГБ (> 100к файлов)
root@ubuntu:/# echo 3 > /proc/sys/vm/drop_caches
root@ubuntu:/# time cp -rp /ext4/usr/ /ext4/usr2
real 2m7.597s
user 0m1.576s
sys 0m21.768s
root@ubuntu:/# echo 3 > /proc/sys/vm/drop_caches
root@ubuntu:/# time rm -r /ext4/usr2
real 0m35.739s
user 0m0.296s
sys 0m5.636s
root@ubuntu:/# echo 3 > /proc/sys/vm/drop_caches
root@ubuntu:/# time cp -rp /btrfs2/usr/ /btrfs2/usr2
real 2m2.985s
user 0m1.624s
sys 0m26.676s
root@ubuntu:/# echo 3 > /proc/sys/vm/drop_caches
root@ubuntu:/# time rm -r /btrfs2/usr2
real 0m21.586s
user 0m0.332s
sys 0m14.304s
После сжатия файлы стали занимать 2.0 ГБ из 3.1 изначально.
Во время сжатия с top я впервые увидел btrfs, который в среднем занимал до 10% одного из 2-х ядер, пик - 30%.
root@ubuntu:/# echo 3 > /proc/sys/vm/drop_caches
root@ubuntu:/# time cp -rp /btrfs2/usr/ /btrfs2/usr2
real 1m42.775s
user 0m1.688s
sys 0m25.624s
root@ubuntu:/# echo 3 > /proc/sys/vm/drop_caches
root@ubuntu:/# time rm -r /btrfs2/usr2
real 0m21.331s
user 0m0.360s
sys 0m14.052s
На операциях копирования мы видим, что btrfs без сжатия немного быстрее EXT4, хотя такую разницу можно записать в паритет. Но при включении сжатия lzo, btrfs уже заметно быстрее.
А вот удаление большого числа файлов происходит на btrfs почти вдвое быстрее! Включение сжатия также дают прибавку скорости, хоть и мизерную.
2. Далее проверим скорость загрузки btrfs со сжатием и без на слабом ноуте. Ext4 здесь нет смысла сравнивать, т.к. в тесте проведенном раньше на десктопе она уступила btrfs даже без включения сжатия. Для тестов установил Ubuntu 16.04 beta1 в конец диска, делаю 1-ю загрузку, после чего с живой сессии сделаю дефрагментацию (чтобы все было честно, т.к. сжатие ФС для следующего теста будет выполняться именно с помощью дефрагментации с включение сжатия) и проведу контрольную загрузку с btrfs без сжатия, а после со сжатием, предварительно выполнив сжатие ФС в живой сессии.
Загрузка до барабанов на экране логина без сжатия: 24 секунды.
Со сжатием lzo: 22 секунды.
Как видно сжатие lzo немного ускорило загрузку даже при использовании слабого процессора. И это не удивительно, ведь во время сжатия ФС я видел загрузку ЦП от работы btrfs около 10% одного ядра в среднем, больше отъедает kworker при дефрагментации ФС хоть со сжатием, хоть без. Выходит уменьшение места (2.4/3.7 ГБ), занимаемого файлами на диске, ускорило работу диска на столько, что польза от этого перекрыла повышение нагрузки на ЦП во время загрузки.