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

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

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

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


С помощью переменных sysctl можно снять некоторые ограничения, накладываемые ядром:

kern.maxfiles - указывает максимальное количество файловых дескрипторов. Стандартное значение определяется параметром maxusers.

kern.ipc.somaxconn - как помним, с помощью этого параметра можно изменять количество одновременно открытых сокетов.

net.inet.ip.portrange.* - эти параметры ответственны за ограничение количества портов. В некоторых ситуациях выделенного по дефолту количества может не хватить. Диапазон портов контролируется параметрами net.inet.ip.portrange.first и net.inet.ip.portrange.last, которые и надо редактировать.

net.inet.tcp.inflight_enable - при установке в 1 данная опция задерживает пакеты для каждого соединения, тем самым ограничивая объем передаваемых данных и обеспечивая оптимальную пропускную способность канала. При использовании этой переменной нужно установить параметр net.inet.tcp.inflight_debug в 0, а также привести net.inet.tcp.inflight_min к значению, близкому к минимальному - 6144. При этом net.inet.tcp.inflight_stab желательно не изменять, или же изменять синхронно (но в любом случае - это крайняя мера).

Ещё пару слов о сетевых ограничениях. Опция ядра NMBCLUSTERS обуславливает количество mbuf (структуры и функции mbuf обеспечивают управление буферами памяти, используемыми сетевой подсистемой ядра), доступных машине. На сервере с большим количеством трафика маленький mbuf будет снижать производительность, поэтому этот параметр необходимо грамотно скорректировать. Для машин с солидным объёмом памяти оптимальны значения между 4096 и 32768. Слишком большое значение указывать нельзя - система может упасть при загрузке. Количество используемых в данный момент сетевых кластеров можно узнать с помощью команды "netstat -m". Для настройки в процессе загрузки используй переменную kern.ipc.nmbclusters.

Некоторые приведённые выше переменные sysctl предназначены только для чтения. Для разрешения этой ситуации надо поместить нужную переменную в файл /boot/loader.conf. Умолчальные значения хранятся в /boot/defaults/loader.conf.

И напоследок: настраивая систему, не забывай про /etc/rc.conf. В этом файле хранится конфигурационная информация, используемая при загрузке системы. Все изменения нужно вносить именно в /etc/rc.conf, чтобы переопределить дефолтные значения из /etc/defaults/rc.conf.

Вот и всё. Ты получил демона своей мечты. Как видишь, всё оказалось не так уж и сложно. За дополнительной информацией обращайся к страницам справочных руководств и не стесняйся спрашивать у дядюшки гугла ;).

Назад на стр. 081-108-6  Содержание