2ihi Posted August 16, 2012 Posted August 16, 2012 Друзья, имеется сервер 360G5 с 2мя картами intel дуал порт и квад порт (em0-em5) на железе крутится следующий софт: uname -a FreeBSD 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Wed Aug 8 18:26:26 KRAT 2012 root@bgp:/sys/amd64/compile/bgp amd64 dummynet без нагрузки с cpuset -l 0 -t $(procstat -t 0 | awk '/dummynet/ {print $2}') pf nat + pf forwarding по таблицам ipfw с правилом ipfw add 100 allow ip from any to any BGP на Quagga version 0.99.20 em0+em1 входят в lagg0 протокол lacp ядро скомпилино с опцией lagg, ipfw, dummynet. Убраны дебаг, все остальное стандартно. из тюнинга только: sysctl.conf dev.em.0.rx_int_delay=200 dev.em.0.tx_int_delay=200 dev.em.0.rx_abs_int_delay=4000 dev.em.0.tx_abs_int_delay=4000 dev.em.0.rx_processing_limit=4096 dev.em.1.rx_int_delay=200 dev.em.1.tx_int_delay=200 dev.em.1.rx_abs_int_delay=4000 dev.em.1.tx_abs_int_delay=4000 dev.em.1.rx_processing_limit=4096 dev.em.2.rx_int_delay=200 dev.em.2.tx_int_delay=200 dev.em.2.rx_abs_int_delay=4000 dev.em.2.tx_abs_int_delay=4000 dev.em.2.rx_processing_limit=4096 dev.em.3.rx_int_delay=200 dev.em.3.tx_int_delay=200 dev.em.3.rx_abs_int_delay=4000 dev.em.3.tx_abs_int_delay=4000 dev.em.3.rx_processing_limit=4096 dev.em.4.rx_int_delay=200 dev.em.4.tx_int_delay=200 dev.em.4.rx_abs_int_delay=4000 dev.em.4.tx_abs_int_delay=4000 dev.em.4.rx_processing_limit=4096 dev.em.5.rx_int_delay=200 dev.em.5.tx_int_delay=200 dev.em.5.rx_abs_int_delay=4000 dev.em.5.tx_abs_int_delay=4000 dev.em.5.rx_processing_limit=4096 net.inet.tcp.blackhole=2 net.inet.udp.blackhole=1 net.inet.tcp.drop_synfin=1 kern.corefile=/tmp/%U.%N.%P.core loader.conf autoboot_delay="3" net.isr.maxthreads=4 hw.em.rxd=4096 hw.em.txd=4096 Вроде всё. Всё хорошо работает, прям на удивление, продавливает в данный момент 200 мегабайт (у меня еще утро), но заметил странный глюк, em0 и em1 образуют lagg0, нагрузка примерно одинаковая по портам но em0 заметно обгоняет по времени процессора em1 и при простом top -SCH видно что нагрузка у em0 в разы выше 31.47% kernel{em0 taskq} против 9.47% kernel{em1 taskq} тогда как pps и трафик различается ну процентов на 30. Так же странным образом проскакивает нагрузка на em4, да сразу по 40-50% тогда как эта карта включается в такой же интел на другом сервере и там подобного рода "всплесков" не наблюдается.. em0 это первый порт первой карты, em4 так же первый порт уже второй карты. так же периодами наблюдаю вот такую вещь 34.60% intr{swi4: clock} - подпрыгнет, постоит минуты 2-3 и снова уходит в нули.. Кто чего может подсказать по этим вопросам? Или просто не заморачиваться? На стадии тестирования таких проблем явно видно небыло, сервер прогонялся 3ое суток под качающими нагрузками + там еще и ng_netflow с сенсорами для пущей жестокости были включены. еще вопросец, про многопоточность драйверов em - что-то я с маху и не заметил что один порт обрабатывает 2 и более ядер процессоров, как в этом можно убедиться как например в случае с драйверами яндекса было? Ну и всеж извечный вопрос - что в 9ке (по вашему мнению) стоит подкрутить для просёру большого количества pps и трафика через em карты? Вставить ник Quote
2ihi Posted August 16, 2012 Author Posted August 16, 2012 UPD Пришлось увеличить некоторые буферы, ибо в 200к pps начали проскакивать ошЫбки. Вставить ник Quote
andryas Posted August 16, 2012 Posted August 16, 2012 Поддерживаю вопрос, ибо собрался апгрейдится с 7-ки, тоже используюю lagg, катрочки et и pt. Трафика, правда, побольше, сейчас около гигабита через этот роутер. Вставить ник Quote
Ivan_83 Posted August 16, 2012 Posted August 16, 2012 net.isr.dispatch=deferred # direct / hybrid / deffered // Interrupt handling via multiple CPU, but with context switch. net.inet.ip.fastforwarding=0 # packets are forwarded directly to the appropriate network interface with a min validity checking, which greatly improves the throughput Вставить ник Quote
2ihi Posted August 16, 2012 Author Posted August 16, 2012 (edited) net.isr.dispatch=deferred # direct / hybrid / deffered // Interrupt handling via multiple CPU, but with context switch. net.inet.ip.fastforwarding=0 # packets are forwarded directly to the appropriate network interface with a min validity checking, which greatly improves the throughput млять, точно, эксперементил и забыл добавить в sysctl.conf Короче говоря, вердикт еще рано выносить, но буферов стоит поднакинуть, хоть многие и говорят что все и так зашибись, тем не менее.... имеем то что имеем. Кстати с fastforwarding со времен 8.2 опасаюсь.. В 9ке детские грабли надеюсь подобрали..? Edited August 16, 2012 by 2ihi Вставить ник Quote
Ivan_83 Posted August 16, 2012 Posted August 16, 2012 Разбансилось по процам и перекос исчез? Какие были болезни с фастфорвадом? Вставить ник Quote
2ihi Posted August 16, 2012 Author Posted August 16, 2012 Разбансилось по процам и перекос исчез? Какие были болезни с фастфорвадом? перекос небольшой есть (не критично), разнеслось по ядрам да, от тестового стенда правда задействовано 4 ядра в лоадере, но это после ребута устраню, а проблемы были с фастфорвадом в купе с PF и\или lagg, помню патч накатывал, но что куда и зачем уже подзабыл.. Вызывало на 8.1\8.2 (возможно и 8.0 но её я помню после проблем с нетграфом быстро свернул) зависания, которые никак ни по времени, ни по звездам не прогнозировались. Короче я спать, вторые сутки на ногах с этими инсталляциями.. Завтра с утра на трезвую голову на вопросы готов отвечать.. Вставить ник Quote
nera Posted November 27, 2012 Posted November 27, 2012 UPD Пришлось увеличить некоторые буферы, ибо в 200к pps начали проскакивать ошЫбки. Доброе время суток! С аналогичной проблемой столкнулись. Раньше стала 7-ка и дрова от яндекса для em пропускная способность получалась выше. Сейчас проапдейтелись до 9-ки и уже при 120k pps вижу ошибки. не поделитесь своими подкрутками? заранее благодарен. Вставить ник Quote
2ihi Posted November 29, 2012 Author Posted November 29, 2012 UPD Пришлось увеличить некоторые буферы, ибо в 200к pps начали проскакивать ошЫбки. Доброе время суток! С аналогичной проблемой столкнулись. Раньше стала 7-ка и дрова от яндекса для em пропускная способность получалась выше. Сейчас проапдейтелись до 9-ки и уже при 120k pps вижу ошибки. не поделитесь своими подкрутками? заранее благодарен. Да поделюсь конечно, завтра с утра (6мск и позже) стукните в приват - скину.. Сейчас уже поздно, голова не соображает.. Вставить ник Quote
apm Posted December 4, 2012 Posted December 4, 2012 Зачем в приват. Давайте, всем интересно Вставить ник Quote
nera Posted December 4, 2012 Posted December 4, 2012 Пока и в приват не дождался. ждемс... :( Вставить ник Quote
kosd Posted December 10, 2012 Posted December 10, 2012 net.isr.dispatch=deferred # direct / hybrid / deffered // Interrupt handling via multiple CPU, but with context switch. Спасибо большое! Реально разнесло прерывания по ядрам. Вставить ник Quote
roysbike Posted January 2, 2013 Posted January 2, 2013 (edited) net.isr.dispatch=deferred # direct / hybrid / deffered // Interrupt handling via multiple CPU, but with context switch. Спасибо большое! Реально разнесло прерывания по ядрам. а меня не особо разнесло. netisr1 отжирает больше. Freebsd 9.1 MPD5 , только PPPoE . 4 ядра , ната нет. 2 порта карты em0 и em1 . на em1 100 вланов , слушает MPD5.6 loader.conf net.isr.numthreads=2 net.isr.maxthreads=2 net.isr.defaultqlimit=4096 hw.em.rxd=4096 hw.em.txd=4096 net.isr.dispatch=deferred top -SHPI last pid: 42980; load averages: 1.24, 1.17, 1.03 up 0+01:01:58 23:05:11 110 processes: 6 running, 88 sleeping, 16 waiting CPU 0: 0.8% user, 0.0% nice, 2.4% system, 0.0% interrupt, 96.9% idle CPU 1: 0.0% user, 0.0% nice, 4.3% system, 0.0% interrupt, 95.7% idle CPU 2: 0.0% user, 0.0% nice, 0.4% system, 2.0% interrupt, 97.6% idle CPU 3: 0.0% user, 0.0% nice, 0.0% system, 9.8% interrupt, 90.2% idle Mem: 27M Active, 42M Inact, 190M Wired, 55M Buf, 3651M Free Swap: 1526M Total, 1526M Free PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND 11 root 155 ki31 0K 64K CPU2 2 60:28 100.00% idle{idle: cpu2} 11 root 155 ki31 0K 64K CPU0 0 58:46 98.88% idle{idle: cpu0} 11 root 155 ki31 0K 64K RUN 1 60:03 98.49% idle{idle: cpu1} 11 root 155 ki31 0K 64K RUN 3 58:43 88.48% idle{idle: cpu3} 12 root -72 - 0K 272K CPU3 3 1:46 12.70% intr{swi1: netisr 1} 0 root -92 0 0K 208K - 1 2:33 5.76% kernel{em1 que} 0 root -92 0 0K 208K - 0 2:07 2.49% kernel{em0 que} 12 root -72 - 0K 272K WAIT 2 0:13 2.39% intr{swi1: netisr 0} 32800 root 52 0 75464K 19032K select 2 0:23 0.29% mpd5{mpd5} 32800 root 52 0 75464K 19032K select 3 0:00 0.29% mpd5{mpd5} 9435 root 20 0 43336K 8076K select 1 0:13 0.20% snmpd 32800 root 52 0 75464K 19032K select 3 0:00 0.20% mpd5{mpd5} Edited January 2, 2013 by roysbike Вставить ник Quote
Ivan_83 Posted January 3, 2013 Posted January 3, 2013 А может не стоит ограничиваться двумя потоками при 4 ядрах? Нагрузка зависит от пути пакета, из того на что легко повлиять - правила фаервола. Вставить ник Quote
roysbike Posted January 3, 2013 Posted January 3, 2013 (edited) А может не стоит ограничиваться двумя потоками при 4 ядрах? Нагрузка зависит от пути пакета, из того на что легко повлиять - правила фаервола. попробую четыре. Я другого понять не могу. я не раз уже писал, net.isr меня не спасает. Есть еще один сервер freebsd 9.0 2 порта, igb1 и igb2 в lagg1 (100 влнов слушает PPPoE). 2 порта, igb2 igb3 тоже в lagg0 , это на uplink. Картина следущая , проработает сервер более 1 нед и прерывания igb2 и igb3 выше по загрузке чем на igb0 igb1 в 3 РАЗА!, хотя в первые 3 дня были поровну. pps не изменялся кол-во юзеров 1000 приверно. 4 ядра прибиты к потокам . Сервер HP. Intel® Xeon® CPU E5620 @ 2.40GHz В первый день хоть 1500 мбит прокачает без проблем, через неделю и 500 не выжмет, упрется в interrupt , не могу найти логическое оъяснения. Как будут счетчики каике переполняются)) top -SHPI cpu0 трудится над igb0 cpu1-igb1 cpu2-igb2 cpu3-igb3 last pid: 27649; load averages: 1.76, 1.74, 1.70 up 14+19:19:36 00:19:08 162 processes: 5 running, 115 sleeping, 42 waiting CPU 0: 1.6% user, 0.0% nice, 0.0% system, 18.0% interrupt, 80.4% idle CPU 1: 1.6% user, 0.0% nice, 0.0% system, 14.3% interrupt, 84.1% idle CPU 2: 0.0% user, 0.0% nice, 0.0% system, 67.2% interrupt, 32.8% idle CPU 3: 1.6% user, 0.0% nice, 0.0% system, 62.4% interrupt, 36.0% idle Mem: 1328M Active, 1368M Inact, 900M Wired, 622M Buf, 2332M Free Swap: 4096M Total, 4096M Free PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND 11 root 155 ki31 0K 64K CPU0 0 308.7H 83.06% idle{idle: cpu0} 11 root 155 ki31 0K 64K CPU1 1 294.6H 80.08% idle{idle: cpu1} 12 root -92 - 0K 672K WAIT 2 28.4H 60.35% intr{irq266: igb2:que} 12 root -92 - 0K 672K WAIT 3 24.6H 57.08% intr{irq271: igb3:que} 11 root 155 ki31 0K 64K CPU2 2 281.6H 42.77% idle{idle: cpu2} 11 root 155 ki31 0K 64K RUN 3 284.8H 41.80% idle{idle: cpu3} 12 root -92 - 0K 672K WAIT 1 156:56 6.98% intr{irq261: igb1:que} 12 root -92 - 0K 672K WAIT 0 143:37 4.30% intr{irq259: igb0:que} 12 root -92 - 0K 672K WAIT 0 142:54 3.47% intr{irq257: igb0:que} 12 root -92 - 0K 672K WAIT 1 142:08 3.47% intr{irq264: igb1:que} 12 root -92 - 0K 672K WAIT 0 287:21 3.27% intr{irq256: igb0:que} 12 root -92 - 0K 672K WAIT 0 143:24 3.27% intr{irq258: igb0:que} 12 root -92 - 0K 672K WAIT 1 143:35 2.59% intr{irq262: igb1:que} 10702 root 22 0 37596K 9372K select 2 526:31 2.49% snmpd 12 root -92 - 0K 672K WAIT 1 140:38 2.49% intr{irq263: igb1:que} 10587 root 20 0 1854M 1526M select 1 464:18 0.59% mpd5{mpd5} 12 root -92 - 0K 672K WAIT 1 68:24 0.20% intr{irq272: igb3:que} netstat -w1 -h pppoe2# netstat -w1 -h input (Total) output packets errs idrops bytes packets errs bytes colls 144k 0 0 98M 154k 0 136M 0 141k 0 0 97M 149k 0 131M 0 135k 0 0 96M 144k 0 129M 0 140k 0 0 99M 149k 0 132M 0 pppoe2# ifconfig | grep ng -c 727 Edited January 3, 2013 by roysbike Вставить ник Quote
2ihi Posted January 15, 2013 Author Posted January 15, 2013 Зачем в приват. Давайте, всем интересно Ребят, я ж говорил: Да поделюсь конечно, завтра с утра (6мск и позже) стукните в приват .. Не для того чтоб в приват ответить, а чтоб напомнили, ну коль не стукнули - значит так нужно было.. Еще актуально кому? PS Перехожу на IGB в самом ближайшем будущем ибо EM не вывозит :( Суммарный трафик до 450 мегабАйт подпрыгивает, на ем нихрена не паралеллится можно сказать.. Вставить ник Quote
2ihi Posted January 15, 2013 Author Posted January 15, 2013 вах, приношу свои извинения, почему-то на почту уведомления о личках не пришли, только сейчас заметил... Вставить ник Quote
napTu Posted February 15, 2013 Posted February 15, 2013 проработает сервер более 1 нед и прерывания igb2 и igb3 выше по загрузке чем на igb0 igb1 в 3 РАЗА!, хотя в первые 3 дня были поровну. pps не изменялся кол-во юзеров 1000 приверно. 4 ядра прибиты к потокам . Сервер HP. Intel® Xeon® CPU E5620 @ 2.40GHz В первый день хоть 1500 мбит прокачает без проблем, через неделю и 500 не выжмет, упрется в interrupt , не могу найти логическое оъяснения. Как будут счетчики каике переполняются)) похожую ситуацию давно наблюдаю на 8.1 с яндекс дровами, когда перезагрузка раза в два снижает пиковую нагрузку CPU. Были идеи что замусориваются таблицы в ipfw или еще какие буфера. А то что перекос входа-выхода разных интерфейсов роутера, так это действительно быстрее всего разный путь обработки пакета в ipfw Вставить ник Quote
NeXuSs Posted February 19, 2013 Posted February 19, 2013 2ihi Конечно актуально, скинь пожалуйста, очень интересно посмотреть. ) Вставить ник Quote
roysbike Posted February 19, 2013 Posted February 19, 2013 проработает сервер более 1 нед и прерывания igb2 и igb3 выше по загрузке чем на igb0 igb1 в 3 РАЗА!, хотя в первые 3 дня были поровну. pps не изменялся кол-во юзеров 1000 приверно. 4 ядра прибиты к потокам . Сервер HP. Intel® Xeon® CPU E5620 @ 2.40GHz В первый день хоть 1500 мбит прокачает без проблем, через неделю и 500 не выжмет, упрется в interrupt , не могу найти логическое оъяснения. Как будут счетчики каике переполняются)) похожую ситуацию давно наблюдаю на 8.1 с яндекс дровами, когда перезагрузка раза в два снижает пиковую нагрузку CPU. Были идеи что замусориваются таблицы в ipfw или еще какие буфера. А то что перекос входа-выхода разных интерфейсов роутера, так это действительно быстрее всего разный путь обработки пакета в ipfw Заметил , что помогает погашение внеш интерфейса , на 2-3 минуты. Видимо чет там очищатеся , но не надолго . 3-5 Дней . Пока такое решение у меня. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.