Обзор Gentoo. Часть 2
После неоднократных напоминаний о том, что я обещал дописать обзор Gentoo вынужден его таки дописать.
Напомню, что Gentoo я решил не просто так тестировать, а с целью. Планировалось установить этот дистрибутив на выделенный web-сервер. Задумка была в том, чтобы максимально оптимизировать ОС под работу LAMP. Под такой оптимизацией я понимаю выкидывание всей ненужно функциональности при сборке программ (с помощью USE-флагов), использование опции компилятора -march для оптимизации бинарного кода под конкретную модель процессора, настройка опций ядра под серверное применение дистрибутива и так далее.
Описывать установку не хочу. Скажу лишь, что если все выполнять строго по официальному руководству, то с установкой Gentoo справится даже ваша бабушка. Не знают даже откуда появился миф, что этот дистрибутив исключительно для продвинутых линуксоидов. Нет, всё просто: читаешь, как обезьяна перепечатываешь в терминал. Всё.
Установка заняла относительно много времени. Компилируется софт на топовом процессоре довольно быстро, но вот на выполнение инструкций вида "откройте этот файл, найдите строку, допишите снизу вот это, откройте другой файл, снова допишите" уходит много времени. Тут я скажу так: если вы учите Linux, то через это надо пройти. Если вы уже ориентируетесь что в Линуксе и как работает, нет никаких причин проходить через это снова. Очевидно же, что правка конфигов — обязанность инсталлятора.
В итоге, хоть я и потратил кучу времени, но получил довольно-таки шуструю систему. И стабильную. Для оценки стабильности залил базу данных сайта, настроил Апач и прогнал тесты. Сильного прироста производительности LAMP по сравнению с работой под Debian я не обнаружил (около 4-7%, почему так мало об этом далее), но и глюков не было.
Теперь о том, почему я не стану использовать Gentoo.
Недостатки Gentoo
Первая сложность возникла с оптимизацией под конкретный процессор. Я нашел в руководстве обозначение нужной модели и прописал его в /etc/portage/make.conf (опция -march в переменной CFLAGS). И вот с этой опцией половина программ отказалась собираться. Пришлось поставить -march=native. Какой именно тип процессора будет выставлен мне не очень понятно.
Вторая сложность возникла при сборке ядра. Точнее, это даже не сложность и тем более не проблема самого дистрибутива, а просто через 30 минут тыканья по опциям меня начало тошнить от звездочек и квадратных скобок. И предстояло еще отметить столько же, если не больше. Тут-то я понял, что это занятие не для меня. Кстати, если подойти к делу серьезно, то по многим опциям ядра нужно читать документацию, так как встроенной во многих случаях недостаточно. А еще полезно знать не только за что отвечает та или иная настройка, а еще и их взаимное влияние.
В результате пришлось прибегнуть к автоконфигурированию ядра с помощью инструмента genkernel. Эта программа собирает ядро со всеми модулями и выставляет опции под усредненный компьютер. Опции не самые эффективные с точки зрения оптимизации, зато пользователь не получит глюки из-за некорректной настройки ядра.
Таким образом, два важных преимущества Gentoo для меня остались незадействованными. Но есть и третий пункт, который меня смущает. Возможно, что я все же потрачу целый день или два и разберусь как следует с Gentoo: и опции компилятора найду оптимальные, и ядро соберу со всеми правильными настройками (коих сотни). Но я не могу себе представить процесс обновления. Есть web-сервер под высокой нагрузкой. Чтобы обновиться, я его должен еще сильнее нагрузить еще и компиляцией, чтобы он вообще лег? Второй вопрос: когда я скачиваю через службу обновлений Debian свежий пакет, то знаю, что он протестирован. Когда я на работающем сервере обновляю, например, Apache со своими USE-флагами, как именно я должен тестировать собранный бинарник? Второй сервер для этого поставить или опробовать сразу на пользователях?
Резюме
Gentoo хороший дистрибутив, быстрый и надежный. И обладает важным преимуществом — в его основе лежит оригинальная идея. Gentoo является именно дистрибутивом, в отличии от кучи производных от Debian поделок типа Ubuntu, Kubuntu, Lubuntu, Mint и еще вагона.
Недостаток Gentoo же в том, что он рассчитан преимущественно на тех пользователей, чье время пока ничего не стоит: пионеров, школьников, студентов и т.п. Если ваше время как специалиста оплачивается, я не вижу ни единой причины тратить его на ручную настройку того, что в других дистрибутивах настраивается автоматически.
Комментарии
pomodor
15 августа, 2014 - 18:52
Оказывается, есть способ узнать ккой именно процессор автоопределяется gcc при указании опции -march=native:
Получился core2, что не соответствует действительности.
dk
16 августа, 2014 - 11:17
А мир пересобирали?
Собирать пакеты на другой машине? Либо с низким приоритетом?
PS А какой процессор то был?
Чингачгук
27 августа, 2014 - 13:18
использую gentoo уже 7 лет
Комментировать