Автор: Алексей Федорчук
И, наконец, пора поглядеть на новый SSD-накопитель… ну если не совсем в реальной работе, то, по крайней мере, в её имитации. В качестве каковой я на протяжении уже ряда лет использую набор из одних и тех же разнохарактерных данных, подвергаемых копированию и удалению.
Сами данные и издевательства над ними охарактеризованы в одной из давнишних заметок. Для сопоставимости результатов никаких изменений в процедуру тестирования не вносилось, хотя все слабые стороны методики я прекрасно понимаю. Но если её слабости не позволяют воспринимать результаты тестов как строго количественные (впрочем, так нельзя воспринимать никакие тесты, какой бы высокой теории вокруг них ни накрутили), то качественную прикидку быстродействия в реальных условиях они обеспечивают — и она оказывается ближе к воспринимаемой органолептически, чем формальные тесты.
Определённости ради скажу, что все дальнейшие события происходят в среде дистрибутива PCLinuxOS, сборке с GNOME в минимальной её редакции, так называемой Zen-mini, о которой будет подробнее рассказано в соответствующем месте. Файловая система, смонтированная в качестве каталога /home
, служащего полигоном, — btrfs, официально этим дистрибутивом не поддерживаемая, но тем не менее могущая быть в нём задействованной (как — также будет предметом отдельного разговора). Она была смонтирована с опцией ssd
, обещающей оптимизацию под носители этого типа, и опциями noatime
и nodiratime
для минимизации обновления метаданных.
Итак, для начала посредством командной конструкции
$ date && cp name newname && date
измеряем скорость копирования следующих объектов:
- каталога с flac-файлами, объёмом 357 Мбайт;
- каталога с деревом портежей Gentoo, объёмом около 229 Мбайт;
- avi-файла, объемом 3,4 Гбайт;
- iso-образ компакт-диска, объёмом 586 Мбайт.
Далее занимаемся удалением созданных копий. Поскольку предыдущий опыт показал, что для единичных файлов и каталогов с небольшим их числом эта операция практически мгновенна, замеряем только время удаления копии дерева портежей. Результаты всего этого заносим в таблицу:
Таблица. Быстродействие файловых операций
Тест | Копирование | Удаление | |||
Объект | Flac | Portages | Avi | Iso | Portages |
SSD SATA-III, btrfs, def | 4 | 19 | 34 | 7 | 15 |
SSD SATA-II, ext4, w/o align | 4 | 43 | 63 | 8 | 6 |
SSD SATA-II, ext4, with align | 2 | 44 | 61 | 8 | 3 |
HDD, etx4 | 10 | 15 | 104 | 19 | 4 |
В качестве сравнительного материала в таблице приведены данные по скорости выполнения тех же операций на SSD Corsair Nova, без выравнивания и с выравниванием границ разделов, а также на традиционном винчестере SATA-II (7200 об./мин). Эти измерения выполнялись под управлением Fedora 13, потому как дело было давно. Во всех этих случаях использовалась файловая система ext4fs, с монтированная в режиме data=ordered
с опцией relatime
,
Теперь по табличным данным, наглядности ради, строим диаграммы — сначала по результатам копирования всех данных
а затем — удалению дерева портежей
Вывод из этих графиков весьма интересны. Так, при копировании больших (*.iso) и особенно очень больших (*.avi) файлов наш новый SSD, да ещё и с btrfs, уверенно опережает своего старшего (по возрасту) собрата с exct4, вне зависимости от того, «выровнен» тот был или нет. При копировании массива «обычных» файлов (каталог с *.flac) он идёт голова в голову с «невыровненным» SSD SATA-II, но последний в «выровненном» состоянии опережает их обоих вдвое. И во всех этих случаях традиционных HDD оказывается далеко позади.
А вот на копировании огромного количества очень мелких файлов, составляющих дерево портежей (в тогдашней версии — более 12 тысяч файлов, размером от первых сотен байтов до первых килобайт) традиционный HDD оказывается победителем, хотя SDD SATA-III отстаёт не намного, SDD SATA-II же в обоих своих ипостасях плетётся в хвосте.
С удалением дерева портежей — ещё интересней. Здесь в лидерах оказывается «выровненный» SDD SATA-II, на пятки ему наступает HDD, и на полголовы отстаёт — SDD SATA-II «невыровненный», результат же SDD SATA-III просто провальный.
Объяснение этому парадоксу найти легко. Во первых, как показывали предыдущие тесты, и на традиционных винчестерах btrfs не блистала быстротой удаления большого количества маленьких вайлов (см. здесь и здесь).
А во-вторых в заметке о выравнивании я, видимо, принял желаемое за действительное. И на самом деле fdisk
сам по себе, без дополнительных пассов, либо только делает вид, что выравнивает разделы по блокам стирания, либо делает это как-то не так. Наложение этих двух факторов и обусловило фетяску, которую SSD SATA-III потерпел на удалении портежей.
Так или иначе, вопрос этот заслуживает дальнейшего изучения. И возможности к тому теперь имеются, ибо, благодаря усилиям etc’а, появился нативный пакет btrfs-progs для PCLinuxOS — до этого я пользовался им, потибренным из репозитория Mageia.
Однако это — в некотором светлом, но не очень определённом будущем. Ибо пока пора прервать SSD’шную интермедию и вернуться к циклу о PCLinuxOS.