Тестирование Linux’ов. Осень 2003. Тур 1. Gentoo против Red Hat
Автор: Алексей Федорчук
2003 г
Учера, у США… нет, не бойтесь, не увбили там Мартына ЛУтера КингА. И даже товарища Кирова там не увбили. И вообще, убивали там не кого, а только чего — конкретно, собственное время. И убивали его в целях сугубо благородных — то есть, можно сказать, приносили в жертву, — в жертву ответу на извечный вопрос: кто на свете всех быстрее, всех стабильней и милее.
То есть: глобальное супермегатестирование дистрибутивов Linux (а в дальнейшем и прочих Open-*nix’ов), о необходимости которого так долго говорили большевики и меньшевики, анархисты и анархо-синдикалисты, государственники и почвенники, славянофилы и нигилисты, — короче говоря, линуксоиды всех стран, национальностей и концессий, — наконец-то, свершилось. Вернее, не столько свершилось, сколько — нАчалось. В любом случае, можно констатировать: процесс пошёл… Будем надеяться, что дальше можно ожидать ситуации, когда «процесс сам по себе идёт». Но об этом — под занавес нашего репортажа.
Генеральной идеей первого тура было: сравнить «умолчальное» быстродействие коренных представителей двух струй современного майнстрейма в Линукс-дистрибутивостроении: Red Hat как представителя пакетной линии, и Gentoo — от сборной Source Based. В дальнейшем предполагалось привлечь к ответу ещё одну пару — Mandrake от монстроизируемых максималистов и CRUX (или его клон Archlinux) — от течения здоровых минималистов.
Решено было нАчать с Gentoo — поскольку процесс его установки обещал быть более длительным. Здесь уместно сказать, на чем тестирование осуществлялось. По это дело была выделена такая машина:
материнская плата MSI 6561 на чипсете SiS 745 под сокет A;
в сокете находился Athlon XP 1800+ (этот индекс в пересчёте на простые мегагерцы примерно соответствует 1500 Mhz);
768 Мбайт памяти — два модуля в 512 и 256 Мбайт, соответственно (вытаскивать оные, для уточнения родословной, по правде говоря, было лень);
видеокарта на GeForce2 MX о 32 Мбайт памяти, генетика её точно установлена не была;
винчестер IBM/Hitachi на 80 Мбайт, 7200 обормотов в минуту в виде мастера на первом IDE-канале;
сетевая карта от Intel (точное название не записал — да и вряд ли это принципиально);
прочие компоненты (типа CD — слейва на втором канале, мыши, клавы, встроенного звука, к теме нынешнего занятия прямого отношения не имеющие.
Диск был разбит в соответствие с рекомендациями разработчиков — эмулируя процесс установки малоопытным юзером, держащимся документации, яко воинского устава (хотя, положа руку на сердце, кто рискнёт сказать, будто-бы, будучи малоопытным юзером, в документацию вообще заглядывал?). Так что на винте были учреждены: корневой раздел (/ — /dev/hda3) на 80 Гбайт, загрузочный (/boot — /dev/hda1) — на 84 Мбайт, и раздел подкачки (swap — /dev/hda2). Файловые системы — ext3fs как для /, так и для /boot (не говорите мне, что в последнем случае это бессмысленно — так уж исторически склалось).
Уже на первой стадии тестирования подстерегали тяготы и лишения. Так. упорно не желала настраиваться сеть. Были шероховатости и при настройке Иксов — впрочем, в конце концов, преодолённые. Однако времени на это ушло больше, чем планировалось в соответствие с генеральной линией партии…
Тем не менее, и из этих непредвиденных осложнений можно было сделать первый вывод о тестировании. А именно — из пакетов нужно ставить пакетные же дистрибутивы, тогда как Source Based самим Господом заповедовано собирать из исходников…
В программу тестирования вошли:
традиционный тест линуксоидов сборка ядра (конкретно — канонической vanilla сkernel.org, версии 2.4.21, штатно входящей как в Gentoo, так и в Red Hat (тогдашних версий — напомню, дело происходило в октябре 2003 г.); конфигурация ядра — по умолчанию, после ответа на несколько вопросов, оказавшихся обязательными;
архивирование и компрессия содержимого первого официального инсталляционного диска Gentoo 1.4, предварительно, разумеется, скопированного на винчестер;
создание iso-образа из того же материалу, то есть из каталога с файлами первого установочного Gentoo-диска.
Дабы не полагаться на секундомер и прочую органолептику, время начала и конца операции во всех случаях фиксировалось командами date. То есть тест на сборку ядра проводился следующим образом:
$ date > kernel# ;
make dep &&
make clean bzImage modules modules_install &&
date >> kernel#
Архивирование и компрессия:
$ date > tar# ;
tar cjpvf cd1.tar.bz2 cd &&
date >> tar#
Создание образа:
date > iso# ;
mkisofs -R -J -o cd#.iso cd &&
date >> iso#
Пущей уверенности ради каждый тест повторялся по три раза — понятно, что для полноценного определения воспроизводимости этого маловато, но на большее не оставалось времени.
Далее (на те же самые разделы, с пересозданием тех же файловых систем) был установлен Red Hat 9 (с 3-дискового set’а, по возможности в минимальной комплектации), после чего отданы те же команды, что и ранее для Gentoo. А вот результаты — результаты оказались столь неожиданными, что я не буду о них распространяться, а просто приведу таблицу и график.
Gentoo
Red Hat
Тест, час:мuн:cek
Дубль 1
Дyбль 2
Дyбль 3
Среднее
Дубль 1
Дyбль 2
Дyбль 3
Среднее
Ядро
00:07:30
00:07:29
00:07:32
00:07:30
00:06:25
00:06:20
00:06:27
00:06:24
Tar.bz2
00:12:41
00:12:18
00:12:18
00:12:26
00:11:16
00:11:18
00:11:16
00:11:17
Mkiso
00:03:00
00:02:59
00:03:00
00:03:00
00:00:18
00:00:18
00:00:18
00:00:18
Пара слов о методике. Таблица была составлена в OpenOffice.org 1.1.0. Значения в ней получены как разность вывода команды date после и до исполнения соответствующей команды, среднее также подсчитано автоматически (при формате ячеек, заданных как time). Так что наблюдаемые эффекты нельзя списать на мои ошибки в арифметике. График также построен в OpenOffice и экспортирован в GIF.
В принципе, цифры и диаграмма говорят сам за себя. Для тех же, кто не верит своим глазам, дам краткий комментарий. Red Hat, не смотря на свое пакетное происхождение и отсутствие какой-либо оптимизации под наличный процессор (напомню — Athlon XP) демонстрирует небольшое, но уверенное преимущество перед пакетным же Gentoo в тестах на сборку ядра и архивирование/компрессию. Которое становится просто подавляющим в тесте на создание iso-образа…
Объяснений этому факту у меня нет. Единственное, что приходит в голову — кривизна конкретной версии (или конкретной сборки) mkisofs в Gentoo.