Почитал, поделюсь своим опытом :)Изначально в статье не указано, под что затачивается система, поэтому и возник такой флейм.
1. Разбивка по разделам
Согласно man tuning, алгоритм своппинга FreeBSD показывает наилучшую производительность при объеме свопа не менее 2x объемов RAM. Так что имеет смысл выделить под своп объем, равный 2 * RAM.
3Gb в /var/tmp при таком разбиении, в общем-то, перебор.. Если вы не собираетесь компилить OpenOffice или native JDK из исходников, то вполне хватит 1Gb.
Охаивание выделения /var/cache можно смело поскипать.. Уж лучше так, чем кэш прокси в /usr/local. Ибо /usr/local - для софта, не являющегося базовой системой. И писать туда постоянно, имхо - плохой тон. Можно считать, что это аналог /usr. Кстати, при использовании oops лучше вообще отдать ему раздел на диске.
Насчет /var/db и mysql, добавлю, что сам ручками выношу туда же каталог data постгреса. Причины описаны выше.
С переносом /cdrom в /mnt есть ньюанс. sysinstall, насколько я помню, монтирует установочный CD именно в /cdrom. Хотя возможно это потому, что он у меня не был удален из fstab. Но если собираетесь что-то делать с установочным CD и sysinstall (например пекиджи с него ставить), то следует проверить.
С опцией noatime на /var/mail я был бы осторожнее.. не уверен, что какой-либо софт после этого не начнет странно глючить.
Пункты 6e и 6ж можно пропустить, если будет подниматься и настраиваться firewall. Имхо, проще и логичнее зарубить серые сети файрволом.
Раздел 7, про recv- и sendspace. Перед выставлением конкретных цифр, лучше внимательно прочитать man tuning. Хотя я оставлял эти настройки as is (правда, я в основном роутеры настраивал).
Раздел 8.
background_fsck="NO" - смотря какой сервер :) Если надо, чтобы машина после аварийной перезагрузки как можно быстрее начала обслуживание клиентов (почтовый сервер, например), при этом можно пожертвовать падением производительности дисковой подсистемы, то лучше пусть fsck идет в фоне. Если же это именно файл-сервер, и производительность файловой системы в работе критична, то лучше прогнать fsck при загрузке.
local_startup="/usr/local/etc/rc.d"# Только для сервера!
Не понял, что тут имелось в виду.. Исключение из процесса загрузки /usr/X11R6/etc/rc.d или то, что на рабочей станции нельзя выполнять при загрузке скрипты из /usr/local/etc/rc.d?
Вся инициализация консоли для сервера может быть опущена.
usbd в RELENG_6 кажется прибили в пользу devd. А вот devd, если вы не меняли /etc/devfs.conf или не используете замену чего-либо в компьютере на ходу (например, жесткие диски или PCMCIA-устройсва), лучше отключить. Есть там возможность для утечки памяти (см. /etc/rc.d/devd).
Насчет firewall_type. Лучше написать конфиг ipfw в отдельном файле (/etc/ipfw.conf например), и указать firewall_type="/etc/ipfw.conf". Это лишит вас необходимости "склеивать" rc.firewall при mergemaster. Да и вообще, удобнее, имхо.
Пункт 9ж. Если лог-файл растет быстро, то лучше его сворачивать не раз в сутки, а по достижению определенного размера. В конце-концов, можно указать оба параметра - максимальный размер и время суток.
Пункт 11в. Локальные скрипты в периодику сейчас лучше класть в /usr/local/etc/periodic. Конфигурируются они из того же /etc/periodic.conf. Например, так работает скрипт, обеспечивающий vacuuming и резервное копирование PostgreSQL.
Тайный смысл пункта 12и мне не постичь..
В конфиги ядра.
# Polling (НЕ РАБОТАЕТ С SMP) - работает, просто разработчики перестраховались, ибо была вероятность. Еще до 6.0-RELEASE фича была переписана и теперь точно работает. До релиза можно было включить поллинг на SMP сходив в исходники ядра и закомментировав там кусочек. Какой именно кусок править - ищите в гугле, я на память не помню. У меня точно работала 5.3-RELEASE на 2хпроцессорной машине с поллингом.
14. snd_driver_load="YES" - не слишком ли круто? :) Достаточно определить, какой именно драйвер звуковухи используется, и потом загружать именно его, а не все имеющиеся в наличии драйвера.
15. Перед изменением make.conf очень рекомендуется ознакомиться с его комментариями. Если у вас нет /etc/make.conf, ищите его пример в /usr/share/examples/etc/make.conf.
CPUTYPE= pentium2
CPUTYPE?= pentium2
Первую строчку лучше выкинуть. Вторая позволяет в случае чего переопределить тип CPU прямым дефайном или переменной окружения make.
Далее, c 6.0-RELEASE конструкции NO<knob> заменены на NO_<knob>.
16. Полный список переменных, понимаемых fetch, можно узнать в man 3 fetch.
17 и 18. Всегда имеет смысл ознакомиться с /usr/src/Makefile насчет действий, которые надо предпринять в процессе сборки и установки ОС из исходников. Также не надо забывать про /usr/src/UPDATING, где в самом конце есть пункт "COMMON ITEMS", также описывающий данный порядок. До кучи, рекомендую смотреть в /usr/ports/UPDATING при каждом апдейте дерева портов. Эти простые инструкции могут сильно облегчить жизнь после апгрейда.
Ну и не забываем читать handbook, где все это подробно описано (и даже местами на русском языке).
--
Jay