Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #81, СЕНТЯБРЬ 2005 г.

Фройндшафт с чертенком

Валерия Комиссарова

Хакер, номер #081, стр. 081-108-1


(kochergi@mail.ru)

Тонкая настройка и оптимизация FreeBSD

help & edition: Kris Kaspersky, Anton Karpov, Andrey Matveev

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

[ядро - всему голова]

Ядро является мозговым центром операционной системы, реализующим все и вся: виртуальную память, процессы, сигналы, семафоры, каналы, сетевые соединения, файловые системы, и, конечно же, множество драйверов устройств. Разработчики включают поддержку как можно большего количества устройств, чтобы адаптировать работу операционки к любой аппаратной среде. Нам такой вариант, естественно, не подходит: мы исключим из ядра поддержку всех ненужных нам опций, модулей и драйверов, что позволит нам уменьшить размер ядра, и, соответственно, объем занимаемой им памяти. Кроме того, в умолчальном ядре может отсутствовать поддержка необходимых тебе устройств/протоколов, поэтому без перекомпиляции здесь не обойтись.

[конфигурирование и перекомпиляция ядра]

Ядро собирается из исходников, которые расположены в каталоге /usr/src/sys (если сырцы отсутствуют, воспользуйся дистрибутивным компактом и утилитой sysinstall, либо получи нужную версию с помощью cvs/cvsup). Теперь переходим в каталог с шаблонами и делаем копию файла дефолтной конфигурации:

# cd /usr/src/sys/`arch -s`/conf

# cp GENERIC MYKERNEL

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

machine i386

cpu I386_CPU

cpu I486_CPU

cpu I586_CPU

cpu I686_CPU

ident GENERIC

maxusers 32

Первая строка сообщает об архитектуре используемой машины. Следующие четыре позволяют выбрать конкретный тип процессора. Оставляем только строку с нашим типом проца (I686_CPU - Pentium Pro и выше). Все остальные комментируем, либо удаляем. Значение параметра ident задает метку нового ядра (ident и имя конфига должны быть одинаковыми).

Особый интерес представляет ключевое слово maxusers. Судя по названию, можно с уверенностью предположить, что этот параметр ограничивает максимальное число пользователей, однако с его помощью задаются размеры некоторых внутренних таблиц ядра: предельное число открытых файлов и запущенных процессов, сетевых буферов и т.д. (хотя это, конечно, косвенно влияет на число пользователей в системе). Изменять эту опцию нужно только в случае переполнения таблицы ядра, либо счастливым обладателям загруженного сервера. Количество файловых дескрипторов, которые будут доступны после кастомизации этого параметра, можно вычислить по формуле (20 + 16 * maxusers). Если сигнала о переполнении нет, maxusers лучше не изменять (а на медленных машинах можно попробовать даже уменьшить, чтобы высвободить некоторое количество памяти). Также можно выставить maxusers в 0, тогда система автоматически подберет требуемое значение.

Содержание  Вперед на стр. 081-108-2