pod Posted January 9, 2016 Здравствуйте! Есть бордер (ipfw NAT, dummynet шейпер) вот такого вида i5-4460 CPU @ 3.20GHz 4Gb RAM Freebsd 8.2 Intel(R) PRO/1000 Network Connection version - 2.2.3 - igb Применен стандартный тюнинг loader.conf sysctl.conf для igb На нем подсети для абонентов натятся в пул из 48 белых ip. Большую часть времени по нагрузке все нормально, но иногда, в часы пик, вылазит вот такое 0 root -68 0 0K 240K - 2 72.2H 36.23% {igb1 que} 0 root -68 0 0K 240K - 1 73.2H 35.35% {igb1 que} 0 root -68 0 0K 240K - 3 71.6H 33.59% {igb1 que} 0 root -68 0 0K 240K - 0 82.0H 29.79% {igb1 que} В целом по системе last pid: 74549; load averages: 4.03, 4.21, 4.21 up 129+13:25:47 20:13:49 148 processes: 16 running, 113 sleeping, 19 waiting CPU 0: 1.9% user, 0.0% nice, 46.3% system, 42.6% interrupt, 9.3% idle CPU 1: 0.0% user, 0.0% nice, 35.2% system, 55.6% interrupt, 9.3% idle CPU 2: 0.0% user, 0.0% nice, 44.4% system, 53.7% interrupt, 1.9% idle CPU 3: 0.0% user, 0.0% nice, 31.5% system, 61.1% interrupt, 7.4% idle Mem: 200M Active, 1207M Inact, 652M Wired, 12K Cache, 405M Buf, 1759M Free Swap: 4096M Total, 4096M Free PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND 12 root -68 - 0K 448K CPU2 2 609.6H 55.86% {irq258: igb0:que} 12 root -68 - 0K 448K CPU3 3 615.3H 51.17% {irq259: igb0:que} 12 root -68 - 0K 448K CPU0 0 384.1H 50.24% {irq256: igb0:que} 12 root -68 - 0K 448K WAIT 1 604.1H 46.44% {irq257: igb0:que} 0 root -68 0 0K 240K - 2 72.2H 36.23% {igb1 que} 0 root -68 0 0K 240K - 1 73.2H 35.35% {igb1 que} 0 root -68 0 0K 240K - 3 71.6H 33.59% {igb1 que} 0 root -68 0 0K 240K - 0 82.0H 29.79% {igb1 que} 0 root -68 0 0K 240K - 0 1496.6 14.60% {dummynet} 0 root -68 0 0K 240K - 1 42.5H 10.64% {igb0 que} 11 root 171 ki31 0K 64K RUN 1 2284.2 8.40% {idle: cpu1} 11 root 171 ki31 0K 64K RUN 3 2292.1 6.69% {idle: cpu3} 11 root 171 ki31 0K 64K RUN 2 2286.5 5.18% {idle: cpu2} 11 root 171 ki31 0K 64K RUN 0 1074.8 3.37% {idle: cpu0} 0 root -68 0 0K 240K RUN 1 23.6H 2.54% {igb0 que} 12 root -68 - 0K 448K WAIT 1 76.6H 2.39% {irq262: igb1:que} 12 root -68 - 0K 448K RUN 0 78.1H 2.34% {irq261: igb1:que} 0 root -68 0 0K 240K - 3 25.0H 2.05% {igb0 que} 12 root -68 - 0K 448K RUN 3 77.1H 2.00% {irq264: igb1:que} 12 root -68 - 0K 448K RUN 2 77.5H 1.90% {irq263: igb1:que} 0 root -68 0 0K 240K - 2 24.1H 0.93% {igb0 que} 13 root 44 - 0K 32K sleep 1 66:39 0.68% {ng_queue0} 12 root -32 - 0K 448K RUN 0 29.1H 0.54% {swi4: clock} igb1 это сетевая, которая смотрит внутрь локальной сети, и обычно процессы igb1 que не нагружают проц больше чем на доли % Трафик на сетевой в это время netstat -w1 -h -I igb1 input (igb1) output packets errs idrops bytes packets errs bytes colls 46K 0 0 15M 64K 0 78M 0 38K 0 0 12M 55K 0 68M 0 41K 0 0 13M 59K 0 73M 0 На что обратить внимание, что может так загружать эту сетевую? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted January 10, 2016 Обновить систему. И начать разбираться, откуда от абонентов прилетает мультикаст. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pod Posted January 10, 2016 Обновить систему. И начать разбираться, откуда от абонентов прилетает мультикаст. Обновить пора, согласен. Но ведь такая аномалия в нагрузке появляется не всегда, значит дело не в версии ОС. Значимого количества мультикаста от абонов нет, один пакет в пару секунд не в счет, вот статистика на порту из сети на igb1 в сторону этого сервера Output packets statistics: 14147591214 output packets, 5726773091420 bytes, 0 underruns 1262240916 unicast packets, 146773 multicast packets, 301637 broadcast packets Что вообще обрабатывается в процессах {igb1 que}? Какой трафик попадает туда а не в {irqххх: igb1:que}? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted January 10, 2016 Обновить пора, согласен. Но ведь такая аномалия в нагрузке появляется не всегда, значит дело не в версии ОС. Неправильное следствие. Некоторые ОС более спокойнее реагируют на мусор. Значимого количества мультикаста от абонов нет, один пакет в пару секунд не в счет, вот статистика на порту из сети на igb1 в сторону этого сервера Начинайте снимать статистику пакетов с коммутатора. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pod Posted January 11, 2016 Начинайте снимать статистику пакетов с коммутатора. приведеные данные именно с порта коммутатора, в который включена igb1 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
hsvt Posted January 11, 2016 http://forum.nag.ru/forum/index.php?showtopic=63798 http://forum.nag.ru/forum/index.php?showtopic=84027 http://forum.nag.ru/forum/index.php?showtopic=82322 http://forum.nag.ru/forum/index.php?showtopic=89137&st=20 http://forum.nag.ru/forum/index.php?showtopic=97207 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pod Posted January 11, 2016 Со ссылками ознакомлен. По ним, и не только, ответа на основной вопрос - Что вообще обрабатывается в процессах {igb1 que}? Какой трафик попадает туда а не в {irqххх: igb1:que}? нету. Вообще в найденных темах ни у кого нагрузки такого вида не вылазит. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted January 11, 2016 Со ссылками ознакомлен. По ним, и не только, ответа на основной вопрос - Что вообще обрабатывается в процессах {igb1 que}? Какой трафик попадает туда а не в {irqххх: igb1:que}? нету. При включённом фастфорвадинге там обрабатывается всё что приходит с этого интерфейса, там и правила шейпера и фаерволы и нетфлоу и хз что у тебя ещё. Если очень хочется смотреть что грузит проц: один раз: kldload hwpmc и периодически во время загрузки: pmcstat -TS instructions -w1 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
rdc Posted January 14, 2016 ещё полезна небольшая доработочка ipfw nat (точнее, libalias) для лимитирования количества трансляций: /usr/src/sys/netinet/libalias/alias_db.c AddLink() добавляем switch (link_type) { case LINK_ICMP: if(la->icmpLinkCount > 100) return (NULL); break; case LINK_UDP: if(la->udpLinkCount > 2000) return (NULL); break; case LINK_TCP: if(la->tcpLinkCount > 2000) return (NULL); break; default: if(la->protoLinkCount > 100) return (NULL); break; } и ещё новость: https://wiki.freebsd.org/ProjectsRoutingProposal 12MPPS on 16-core box which is 6-10 times better than stock HEAD Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pod Posted January 29, 2016 hwpmc использовать не получилось, в 8.2 он был слишком старый и не работал с установленным процом. Обновился до 10.2, нагружающие проц {igb1 que} из топа пропали, хотя максимальный LA так и остался выше 4. Виновником оказался dummynet, который в top хоть и показывал 0% нагрузки, но по факту нагружал 30% system на одном из ядер. Решением оказалась установка net.inet.ip.dummynet.expire=0 Это снизило нагрузку system, которую создавал dummynet, в 2-2.5 раз и LA в пике теперь до 3.75. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted January 30, 2016 А покажите все-таки вывод в ЧНН: sysctl net.inet.ip.dummynet Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...