Фройндшафт с чертенком Валерия Комиссарова Хакер, номер #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, тогда система автоматически подберет требуемое значение. |