AlKov Опубликовано 16 марта, 2010 Имею в наличии NAS FreeBSD 6.3-RELEASE #1: Mon Mar 30 11:03:21 MSD 2009 /usr/obj/usr/src/sys/SMP_MPD_PF amd64 mainboard Intel S5000VSA, сетевые 1G встроенные, CPU: Intel(R) Xeon(R) CPU 5110 @ 1.60GHz (1603.91-MHz K8-class CPU) mpd5.3 + ng_car При порядка 560 pptp сессий и ~75 Mbit/s сеть начинает загибаться, потери на клиентах доходят до 25%. top -S показывает ужаснейшую картину PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 14 root 1 -44 -163 0K 16K CPU0 1 623.4H 91.50% swi1: net 11 root 1 171 52 0K 16K RUN 0 621.3H 35.16% idle: cpu0 10 root 1 171 52 0K 16K RUN 1 684.5H 31.64% idle: cpu1 22 root 1 -68 -187 0K 16K WAIT 1 42.0H 3.96% irq18: em0 23 root 1 -68 -187 0K 16K WAIT 0 35.2H 3.27% irq19: em1 Удалось нагуглить, что загрузку swi1: net создают пакетные фильтры. Но на машине их почти что нет - работают пара десятков правил в pf. Отключать pf пробовал - результат неизменен.. Продолжая мысль о фильтрах, обратил внимание на конфиг mpd. Там по этой теме есть вот что: # глобальные фильтры set global filter 1 add 1 "match dst net 172.16.0.0/12" set global filter 1 add 2 "match dst net AAA.BBB.CCC.0/24" set global filter 1 add 3 "match dst net 10.0.0.0/8" set global filter 1 add 4 "match dst net 192.168.0.0/16" set global filter 2 add 1 "match src net 172.16.0.0/12" set global filter 2 add 2 "match src net AAA.BBB.CCC.0/24" set global filter 2 add 3 "match src net 10.0.0.0/8" set global filter 2 add 4 "match src net 192.168.0.0/16" Не есть ли это причина проблемы? К сожалению, просто так эти фильтры отключить сложно для проверки (придется перепахать порядка 1500 индивидуальных конфигов). Поэтому хотелось бы иметь полную уверенность в том, что делаю. Может предварительно покопать что-то еще? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 16 марта, 2010 (изменено) Можно так попробовать, 6.3 старовата и встроенные сетевухи зло: sysctl.conf net.isr.direct=0 # Enable direct dispatch // Interrupt handling via multiple CPU, but with context switch. net.inet.ip.fastforwarding=1 # packets are forwarded directly to the appropriate network interface with a min validity checking, which greatly improves the throughput dev.em.0.rx_kthreads=2 # dev.em.0.rx_int_delay=250 # dev.em.0.tx_int_delay=250 # dev.em.0.rx_abs_int_delay=250 # dev.em.0.tx_abs_int_delay=250 # dev.em.0.rx_processing_limit=2048 # loader.conf kern.ipc.maxpipekva="32000000" # net.isr.bindthreads=1 # Bind netisr threads to CPUs net.isr.maxthreads=2 # Use at most this many CPUs for netisr processing net.graph.maxdata="512" # net.graph.maxalloc="4096" # Maximum number of queue items to allocate net.graph.maxdgram="128000" # net.graph.recvspace="128000" # Изменено 16 марта, 2010 пользователем Ivan_83 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlKov Опубликовано 17 марта, 2010 (изменено) Можно так попробовать, 6.3 старовата и встроенные сетевухи зло:Ну вообщем-то все так, но все равно странно для таких мелких нагрузок (12-14kpps и 80Mbit/s аплинка). Неужели для этого железа оно неподъемно? Что-то не верится..sysctl.conf net.isr.direct=0 # Enable direct dispatch // Interrupt handling via multiple CPU, but with context switch. net.inet.ip.fastforwarding=1 # packets are forwarded directly to the appropriate network interface with a min validity checking, which greatly improves the throughput dev.em.0.rx_kthreads=2 # dev.em.0.rx_int_delay=250 # dev.em.0.tx_int_delay=250 # dev.em.0.rx_abs_int_delay=250 # dev.em.0.tx_abs_int_delay=250 # dev.em.0.rx_processing_limit=2048 # попробую подкрутить. loader.conf kern.ipc.maxpipekva="32000000" # net.isr.bindthreads=1 # Bind netisr threads to CPUs net.isr.maxthreads=2 # Use at most this many CPUs for netisr processing net.graph.maxdata="512" # net.graph.maxalloc="4096" # Maximum number of queue items to allocate net.graph.maxdgram="128000" # net.graph.recvspace="128000" # А эти параметры можно как-то поправить, не перегружая сервер? Ну также, как sysctl. P.S. А не тут ли собака порылась? На рутере uTP у меня дропается, но вот как не пустить эту заразу в туннели, понятия не имею.. :( P.P.S. Кстати, вот этих двух параметров dev.em.0.rx_kthreads=2 # dev.em.0.rx_processing_limit=2048 у меня почему-то нет. Есть только вот это sysctl dev.em.0 dev.em.0.%desc: Intel(R) PRO/1000 Network Connection Version - 6.7.2 dev.em.0.%driver: em dev.em.0.%location: slot=0 function=0 dev.em.0.%pnpinfo: vendor=0x8086 device=0x1096 subvendor=0x8086 subdevice=0x3484 class=0x020000 dev.em.0.%parent: pci5 dev.em.0.debug: -1 dev.em.0.stats: -1 dev.em.0.rx_int_delay: 0 dev.em.0.tx_int_delay: 66 dev.em.0.rx_abs_int_delay: 66 dev.em.0.tx_abs_int_delay: 66 Изменено 17 марта, 2010 пользователем AlKov Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AntonS Опубликовано 17 марта, 2010 (изменено) дровы от яндекса поставь сколько ядер в проце? Изменено 17 марта, 2010 пользователем AntonS Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlKov Опубликовано 17 марта, 2010 дровы от яндекса поставьА каким образом это сделать? За всю практику ни разу не озабачивался подобным.. :(Погуглю, конечно, но может быть ссылочку на материал подскажете? сколько ядер в проце?Два Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AntonS Опубликовано 17 марта, 2010 http://people.yandex-team.ru/~wawa/ а сколько процов? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlKov Опубликовано 17 марта, 2010 http://people.yandex-team.ru/~wawa/ а сколько процов? С драйверами разобрался.. Только вот что-то гложет сомнение, что проблема в них.. Плюс ко всему, полазив по http://people.yandex-team.ru/~wawa и сопоставив содержимое фтп с вот этим em0: <Intel® PRO/1000 Network Connection Version - 6.7.2> port 0x2020-0x203f mem 0xb8820000-0xb883ffff,0xb8400000-0xb87fffff irq 18 at device 0.0 on pci5что-то подсказывает, а не одно и то же оно??Наверное, сначала все же попробую убрать фильтры в нетграфе. Скорее всего из-за мелких пакетов грёбаного uTP затыкаются фильтры и шейпер.. Хуже чем есть, оно точно не станет. А если дело действительно в uTP, то боюсь придется перекраивать шейпинг в полисинг... :( а сколько процов?Один. P.S. Плюс ко всему заглючил радиус (начал начислять бредовые суммы на пометровых тарифах), скорее всего, после установки net.inet.ip.fastforwarding=1, вернул в дефолт ("0"). Вообщем, "веселье" по-полной.. :( Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wsimons Опубликовано 17 марта, 2010 Да, было тоже самое, с родными дровами для интеловских карточек, поставили яндексовские, но появилось вот что: http://forum.nag.ru/forum/index.php?showtopic=55764 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlKov Опубликовано 17 марта, 2010 Да, было тоже самое, с родными дровами для интеловских карточек, поставили яндексовские, но появилось вот что:http://forum.nag.ru/forum/index.php?showtopic=55764 Я правильно Вас понимаю, что до смены драйверов наблюдалась аналогичная моей картина? При тех же параметрах (кол-во pps, трафика и он-лайн pptp)? А после замены дров, прежняя проблема ушла, но появилась новая?И еще - не совсем понял, на чем у Вас реализован шейпер? И какой версии mpd, есть ли подобные моим глобальные фильтры? У меня шейпер реализован следующим образом - загружаю radius-ом для каждой mdp ноды подобную конструкцию mpd-limit +="in#1#Loc=flt1 deny", mpd-limit +="in#2#Ext=all shape 1024000 192000 pass", mpd-limit +="out#1#Loc=flt2 deny", mpd-limit +="out#2#Ext=all shape 1024000 192000 pass", mpd-input-acct +="Ext", mpd-output-acct +="Ext" Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wsimons Опубликовано 17 марта, 2010 (изменено) Да, именно такая-же проблема была. После замены исчезла та, но появилась другая. шейпинг - ng_car, мпд пятый, фильтров как таковых нету, был в свое время для uTP (но практика показала что ситуация и с ним, и без него - одинаковая), из фильтров вообще по сути только фильтры для работы ната. Изменено 17 марта, 2010 пользователем wsimons Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wsimons Опубликовано 17 марта, 2010 Кстати, при net.inet.ip.fastforwarding=1 наблюдается вот что: после ребута (или отключения и последующего включения), на машине вылазиет kernel panic с ошибкой "имя интерфейса": discard frame w/o packet header. Лечилось отключением линка сетевой карточки (или карточки) до полного запуска машины (т.е. когда вот сервачок полностью запустился, тогда и можно включать линк :)). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlKov Опубликовано 18 марта, 2010 Да, именно такая-же проблема была.После замены исчезла та, но появилась другая. шейпинг - ng_car, мпд пятый, фильтров как таковых нету, был в свое время для uTP (но практика показала что ситуация и с ним, и без него - одинаковая), из фильтров вообще по сути только фильтры для работы ната. А примером фильтра для uTP не поделитесь? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wsimons Опубликовано 18 марта, 2010 В нем ничего оригинального, то-ли с опеннета был взят, то-ли отсюда. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Alexey T Опубликовано 19 марта, 2010 вставлю свои 5 копеек. а поллинг включен? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wsimons Опубликовано 19 марта, 2010 У нас кстати выключен. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlKov Опубликовано 19 марта, 2010 вставлю свои 5 копеек. а поллинг включен? Отключен Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlKov Опубликовано 19 марта, 2010 В нем ничего оригинального, то-ли с опеннета был взят, то-ли отсюда. Так Вы фильтр не на ng_car что ли делали? На ipfw? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wsimons Опубликовано 19 марта, 2010 (изменено) http://forum.nag.ru/forum/index.php?showto...5025&st=529 530 пост :) Изменено 19 марта, 2010 пользователем wsimons Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlKov Опубликовано 20 марта, 2010 http://forum.nag.ru/forum/index.php?showto...5025&st=529 530 пост :)Жаль.. Это не тО.. Хотелось бы реализовать это без ipfw на mpd фильтрах (наподобие set global filter 1 add 1 "match dst net 172.16.0.0/12"). Но скорее всего, mpd такое не умеет.. P.S. По теме - зашел в полный тупик.. :( Все шаманства с фильтрами mpd (удалил), замена shape на rate-limit и прочие "подкручивания" sysctl ничего не дали. Решил все же махнуть шашкой и поставить драйвера от яндекса. Скомпилил в ядро, запустился и... Ничего не могу понять.. При почти 500 он-лайн картинка top-а last pid: 96303; load averages: 2.64, 2.49, 2.49 up 0+04:16:03 22:22:47 383 processes: 5 running, 362 sleeping, 16 waiting CPU states: 2.8% user, 0.0% nice, 10.3% system, 53.4% interrupt, 33.5% idle Mem: 161M Active, 1547M Inact, 259M Wired, 48K Cache, 214M Buf, 1886M Free Swap: 8192M Total, 8192M Free PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 14 root 1 -44 -163 0K 16K CPU0 1 229:20 99.95% swi1: net 11 root 1 171 52 0K 16K RUN 0 89:42 34.03% idle: cpu0 10 root 1 171 52 0K 16K RUN 1 90:14 24.12% idle: cpu1 12 root 1 -32 -151 0K 16K WAIT 1 19:39 5.52% swi4: clock sio 24 root 1 43 0 0K 16K WAIT 1 5:35 2.29% em0_rx_kthread_0 28 root 1 43 0 0K 16K WAIT 1 4:47 1.90% em1_rx_kthread_0 25 root 1 43 0 0K 16K WAIT 1 5:35 1.86% em0_rx_kthread_1 29 root 1 43 0 0K 16K WAIT 1 4:47 1.86% em1_rx_kthread_1 и практически полное отсутствие дропов. Заметно вырос аплинк и соотв. кол-во pps, субъективно все забегало, как бывало. И все это при 99.95% swi1: net и 54% interrupts.. И чему теперь верить?? Ушел в аут....... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
wawa Опубликовано 21 марта, 2010 с яндексовскими драйверами разумно использовать net.isr.direct=1 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlKov Опубликовано 21 марта, 2010 с яндексовскими драйверами разумно использовать net.isr.direct=1Я в курсе, читал в readme.yandex. Но по этому поводу есть сомнения.. Изначально так и установил (net.isr.direct=1), но через пару минут после ребута сервер зашел в непонятный ступор - сеть отвалилась, комп. отвечал только на клавиатуру, не выполняя команд (просто выводил на консоль символы нажатых клавиш), не реагировал даже на ctrl-alt-del. Ребутнул "reset-ом", остановил mpd и radius (чтобы трафик не шел), вернул net.isr.direct=0, запустился - работает уже почти сутки..НО! Не уверен, что дело именно в net.isr.direct=1, т.к. одновременно отключил еще один "подозрительный" параметр - net.inet.ip.fastforwarding=1, поставил "0". Возможно, дело в нем, но пока проверить нет возможности. Итак уже народ возмущается частыми отключениями, подожду чуток, пока успокоятся. ;) Кстати, вот тут уже отмечали, что драйвера от yandex в сочетании с ng_car (а у меня именно так!) дают непредсказуемый результат. wsimons, а у Вас что по этому поводу (net.isr.direct=? и net.inet.ip.fastforwarding=?) ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AntonS Опубликовано 21 марта, 2010 1. NAT с тачки убери 2. net.inet.ip.fastforwarding=1 нельзя юзать с NAT увы пока с имеющимися граблями не совертую мешать нат дамминет и ng_car разнеси по тачкам и все будет нормуль и обновись! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
adeep Опубликовано 21 марта, 2010 2. net.inet.ip.fastforwarding=1 нельзя юзать с NAT причина? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AntonS Опубликовано 21 марта, 2010 в свое время были проблемы с ipnat может и с другими тоже есть грабли Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
st_re Опубликовано 21 марта, 2010 Дизельное топливо нельзя заливать в машину Почему Были проблемы с ВАЗ2101. Наверное и у других проблемы.. Например с pf nat проблем связанных с net.inet.ip.fastforwarding=1 не замечено. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...