Polling FreeBSD 9.1

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
artem20041991
мл. сержант
Сообщения: 76
Зарегистрирован: 2010-01-09 18:09:16

Polling FreeBSD 9.1

Непрочитанное сообщение artem20041991 » 2013-05-26 13:40:48

На сервере с FreeBSD 9.1 amd64 и гигабитной сетью на драйвере re0 решил настроить многими хваленный Polling, в результате чего у сети упала пропускная способность и на 1мс увеличился пинг ко всем компьютерам в сети...

Код: Выделить всё

DEVICE_POLLING
HZ=1000
Последний раз редактировалось f_andrey 2013-05-26 16:27:21, всего редактировалось 1 раз.
Причина: Автору. пожалуйста, выбирайте соответствующий раздел форума, оформляйте сообщение по человечески.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: Polling FreeBSD 9.1

Непрочитанное сообщение BlitzKrieg » 2013-05-27 8:25:25

А у вас были веские основания для его использования или вы решили просто попробовать?

artem20041991
мл. сержант
Сообщения: 76
Зарегистрирован: 2010-01-09 18:09:16

Re: Polling FreeBSD 9.1

Непрочитанное сообщение artem20041991 » 2013-05-27 10:16:38

При создании CS1.6 серверов его очень рекомендуют, к томуже он должен улутшать пинг и снизить нагрузку на проц.

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: Polling FreeBSD 9.1

Непрочитанное сообщение BlitzKrieg » 2013-05-27 13:02:17

Кто вам это сказал?

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: Polling FreeBSD 9.1

Непрочитанное сообщение BlitzKrieg » 2013-05-27 13:14:53

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

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Polling FreeBSD 9.1

Непрочитанное сообщение skeletor » 2013-05-27 13:57:34

Вам правильно говорят - он не нужен. Вот, выдержка Константина Белоусова из рассылки
Текущая архитектура FreeBSD обрабатывает прерывания от устройств, и, в частности, сетевых карт, в специально запущенных для этого нитках.
Нить блокирована, единственное действие кода обработки прерывания - разблокировка нити. Вот кусочек вывода ps auxww на машине, с которой я
это пишу:

root 218 0.0 0.0 0 8 ?? WL 9:46PM 0:00.79 [irq20: rl0 fwohci0]
root 220 0.0 0.0 0 8 ?? WL 9:46PM 0:05.69 [irq22: skc0 ath0]

Почти все современные сетевые адаптеры для 1000baseTx имеет feature называемую «interrupt coalescing», задерживающую вызов прерывания до заполнения Rx кольца адаптера.

Третье обстоятельство – это так называемый direct dispatch. Если вы помните, докладчик упоминал об отдельном процессе netisr, предназначенном для обработки Rx фреймов. Причина существования netisr
– тот факт, что прерывание от Rx может прийти в момент, когда процессор уже выполняет сетевой код, и полная обработка пакета из interrupt handler привела бы к рекурсивному входу в сетевой стек. Альтернативой
было бы поднять приоритет процессора до splnet (в терминах OpenBSD), но это бы означало, что прерывания блокированы на длительное время.

Но, поскольку FreeBSD выполняет настоящий обработчик прерывания в отдельной нитке, то netisr не нужен. Все обработка входящего пакета можеть произойти без дорогостоящего переключения контекста. Это и есть direct dispatch. Direct dispatch включен по умолчанию на FreeBSD >= 7:
net.isr.direct: 1

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

Конечно, есть сетевые карты, для которых polling выигрывает, но тенденция состоит в том, что direct dispatch не хуже и более естественен.

artem20041991
мл. сержант
Сообщения: 76
Зарегистрирован: 2010-01-09 18:09:16

Re: Polling FreeBSD 9.1

Непрочитанное сообщение artem20041991 » 2013-05-27 14:54:59

Спасибо, Вы меня успокоили...
Все дело в моей жадности ко всем возможным улутшениям системы надо испробовать все чтоб добиться идеала...