уменьшение трафика в сети

Igor Sysoev is at rambler-co.ru
Wed Mar 11 15:11:15 MSK 2009


On Tue, Mar 10, 2009 at 11:22:48PM +0300, Михаил Монашёв wrote:

> Здравствуйте, Игорь.
> 
> >> ??>> >> em1 taskq отдал две трети процессора на swi1: net
> >> ??>> >> 
> >> ??>> >> Какой из этого можно сделать вывод?
> >> ??>> 
> >> ??>> > Вывод из этого неутешительный - во FreeBSD в общем случае не параллелится
> >> ??>> > входщий TCP/IP. Судя по em1, там ещё есть em0. Их можно подключить к двум
> >> ??>> > сетям - внешней и внутренней (бэкендной) ?
> >> ??>> 
> >> ??>> А там можно какие-нить sysctl-ки покрутить?
> >> 
> >> DM> /boot/loader.conf:
> >> 
> >> DM> hw.em.rxd="4096"
> >> DM> hw.em.txd="4096"
> >> DM> hw.em.rx_process_limit="-1"
> >> 
> >> Про  первые  две  читал  и  видел  их в исходниках драйвера. Это число
> >> дескрипторов  для  приёма  и  отправки. Но надо ли их увеличивать? Как
> >> узнать, что их не хватает? И что происходит, если их не хватает?
> 
> IS> Если не хватает rxd, то пакеты дропаются.
> IS> Если не хватает txd, то медленее отдаётся.
> IS> По умолчанию оба параметра - 256.
> IS> Как узнать, что не хватает:
> IS> sysctl dev.em.1.stats=1
> IS> Потом смотрим в /var/log/messages или dmesg.
> 
> >> А  что  делает  третья  sysctl-ка  из сорцов я не силён понять. Можешь
> >> подсказать, актуальна ли она в 7.1?
> 
> IS> Это максимальное число RX пакетов, которые em taskq обрабтывает за один
> IS> вызов, по умолчанию:
> 
> IS> sysctl dev.em...rx_processing_limit
> IS> dev.em.0.rx_processing_limit: 100
> 
> IS> -1 - неограниченное число пакетов.
> 
> Вдогонку...
> Я где-то вчера читал, что если ядро собрано с поллингом, то всё это не
> работает. Это правда? Сейчас у меня так:
> 
> options         HZ=2000
> options         DEVICE_POLLING

Не работает только hw.em.rx_process_limit. rxd и txd ещё как работают.


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list