CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
19.03.2019

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Заметки :: Файловые системы

FreeBSD 6 и AMD64: тесты файловых операций

В прошлой своей заметке я говорил, что первое впечатление от 6-й версии FreeBSD на платформе AMD64 - повышение быстродействия файловых операций, не просто видимое невооруженным глазом, а так даже бросающееся в глаза. И возникает резонный вопрос - а чем же оно обусловлено? Для ответа на него я предпринял маленькое исследование, результаты которого и предлагаются ныне вниманию читателей.

Очевидно, что для количественной оценки быстродействия файловых операций скорость их нужно померять. Поскольку измерения эти имели целью исключительно удовлетворение собственного любопытства, меня больше всего интересовали операции с теми данными, с которым я имею дело регулярно (и для которых мной ранее проводились измерения: см. здесь и здесь). А это а) массивы смешанных данных (тексты и иллюстрирующая их графика), б) массивы из огромного количества очень маленьких файлов (типа дерева портов FreeBSD и аналогичных систем управления пакетами из Source Based дистрибутивов Linux) и в) большие файлы, от объема CD и выше. В соответствие с этим я и подобрал тестовые объекты.

Во-первых, это был каталог моих рабочих материалов - файлов в форматах plain text и html с иллюстрациями в форматах gif, tiff, jpeg, png, объем которых варьировал от нескольких килобайт до первых десятков мегабайт. Для оживления картины я разбавил его звуковыми файлами mpeg (от 1,5 до 6 Мбайт каждый). В результате первый тестовый массив суммарно составил 830 Мбайт.

Вторым объектом было подручное дерево портов FreeBSD от 6 мая 2004 г., объемом 24,2 Мбайт, и результат его "растаривания", что давало каталог в 124 Мбайт. Специфика его - в том, что он образован огромным (свыше 100 тысяч) количество файлов, преобладающий размер которых - несколько сот байт.

Наконец, третьим объектом стал avi-файл размером в CD - 693 Мбайт.

Ничего лучшего, чем измерять время копирования этих массивов, я не придумал. То есть каталог данных копировался командой вида

$ cp data newdata

с последующим уничтожением целевого каталога

$ rm -Rf newdata

и замеров времени каждой операции посредством вывода команды date до и после нее. Аналогично я поступал и с большим файлом. А тарбалл портов предварительно разворачивался командой

$ tar xzvf ports.tar.gz

время чего также замерялось - это ведь не только скорость декомпрессии и разархивации, зависящая от быстродействия процессора, но и скорость инкорпорации результата в файловую систему. В целях облегчения жизни операции над каждым объектом выполнялись из простенького скрипта вида

date >> file_of_result && \
command1 && \
date >> file_of_result && \
...
date >> file_of_result &&

Все три теста для каждой файловой системы в каждом режиме выполнялись трижды. По завершении цикла файловая система размонтировалась и перед повторением монтировалась заново. В качестве результирующих принималось среднее арифметическое из трех значений.

Тестовая платформа была описана в предыдущей заметке, поэтому остановлюсь на ней вкратце:

  • процессор AMD64 3200+ (реальная частота 2 Ггц);
  • материнская плата Epox EP-9NDA3I на чипсете nForce3 250;
  • память 1 Гбайт (2 модуля по 512 Мбайт);
  • видеокарта Gigabyte на Radeon 9250, 128 Мбайт;
  • винчестер SATA Seagate Barracuda 120 Гбайт, 7200 об./мин;
  • два винчестера PATA на первом канале - Seagate Barracuda IV, 7200 об./мин - 40 Гбайт (Master) и 80 Гбайт (Slave);
  • CD-RW/DVD+RW NEC 350AG - мастером на втором IDE-канале.

Прочие компоненты в контексте темы значения не имеют. Диски, согласно показаниям утилиты atacontrol, работали в режимах SATA150 и DMA100, соответственно.

Для начала измерения выполнялись на рабочей системе - FreeBSD 6 beta1, с ядром, пересобранным с истреблением встроенной поддержки всех SCSI- и сетевых адаптеров. Система эта лежала на диске SATA, разбитом следующим образом:


Тестовые данные были размещены в разделе /home, практически пустом (за исключением профильных файлов пользователя), отформатированном под UFS2 с включенным механизмом SoftUpdates.

Результаты измерений можно видеть в первой строке таблицы.

Таблица 1

Данные Порты Бол. файл
Copy Delete Untar Copy Delete Copy
AMD64-SATA 130 8 79 109 58 50
P-4/2,53 211 7 189 255 92 104

В сравнении с ранее выполненными измерениями для Pentium-4 с тактовой частотой 2,53 Ггц под управлением FreeBSD 5.2.1 (для i386, разумеется) результаты выглядят впечатляюще. Однако чем они обусловлены - сменой платформы, версии ОС или еще какими факторами, - из этого сравнения остается неясным. И не будем забывать, что нынешние измерения производились на винчестере SATA, тогда как предыдущие - на PATA (тот же самый Seagate Barracude IV 40 Мбайт).

К счастью, мы располагаем возможностью снять хотя бы одну неопределенность, так как текущая платформа располагает винчестером, не просто аналогичным прежней, но и вообще тем же самым - Barracude IV 40 Мбайт. Повторение измерений на нем (при той же файловой системе UFS2) дало результаты просто обескураживающие: скорость всех файловых операций на диске PATA снизилась в полтора-два раза. При этом результаты по копированию массива данных и большого файла, а также по удалению развернутого дерева портов оказываются практически идентичными таковым, полученным на машине с P-4/2,53 и тем же самым винчестером (таблица 2). А большая скорость "растаривания" и копирования дерева портов в текущей конфигурации может быть обусловлена большей производительностью AMD64/3200+ по сравнению с P-4/2,53 - ведь для обеих этих операций вклад подсистемы процессор/память будет существенным.

Таблица 2

Данные Порты Бол. файл
Copy Delete Untar Copy Delete Copy
AMD64-SATA 130 8 79 109 58 50
AMD64-PATA 193 5 136 170 91 101
P-4/2,53-7200 211 7 189 255 92 104
P-4/2,66-4200 274 15 235 339 188 115

Отмеченная закономерность находит свое подтверждение, если сравнить сегодняшние результаты с теми, что были получены на ноутбучном винчестере со скоростью вращения 4200 об./мин и описаны в соответствующей статье. Правда, там речь шла об ОС DragonFlyBSD и файловой системе UFS, и потому строго количественно их сравнивать нельзя. Однако качественная тенденция и тут налицо: падение производительности диска приводит к сильному снижению быстродействия файловых операций - не смотря на несколько более мощный процессор (P-4/2,66) и то, что сама по себе UFS считается несколько более быстрой, чем UFS2 (рисунок).


Рисунок. Диаграмма сравнительного быстродействия файловых операций

Из всего сказанного выше можно сделать неутешительный вывод: в тестах файловых операций под управлением FreeBSD мы измеряем вовсе не быстродействие файловой системы, а быстродействие жестких дисков. И даже более того - не столько само их быстродействие, сколько эффективность реализации драйверов интерфейсов для дисковых устройств: понятно, что интерфейс SATA быстрее, чем PATA, но не в полтора-два раза, как можно было бы заключить из табл.2 и диаграммы.

Так что беру обратно все свои слова, сказанные в предыдущих заметках относительно медлительности файловых систем UFS и UFS2: на самом деле мы не знаем, каково их реальное быстродействие. И, вследствие особенностей работы FreeBSD с дисковыми накопителями, рискуем никогда этого не узнать.

С другой стороны, сказанное вселяет некоторый оптимизм: раз быстродействие файловых операций во FreeBSD определяется не файловой системой, а эффективностью драйверов дисковых устройств - во-первых, и их физической производительностью - во-вторых, можно ожидать со временем существенного прогресса в этой области.

И, наконец, последний вывод: приобретая новую машину под FreeBSD-десктоп, берите диски SATA - не пожалеете.




Комментарии

аноним, Fri Jan 18 23:16:25 2008:
проведите тест на x64 linux ext2, sxt3, и т.д... интересные будут результаты для сравнения UFS

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds