hicks Опубликовано 24 сентября, 2009 · Жалоба День добрый. Есть сетка из 4к абонентов, у всех прямые ip адреса. Общий канал - 280Мбит/с. Общая схема сети dlink(L2)->dlink(L3)->cisco3750->8-ми процессорный Xeon c 8Гб памяти (сетевуха - Intel® PRO/1000 Network Connection version - 1.7.3), FreeBSD 7.2-RELEASE-p3. На железке поднят bgp и шейпер. # 4Mbit/s $ipfw pipe 5 config bw 4Mbit/s queue 80Kbytes $ipfw pipe 6 config bw 4Mbit/s queue 80Kbytes $ipfw queue 5 config pipe 5 mask src-ip 0xffffffff $ipfw queue 6 config pipe 6 mask dst-ip 0xffffffff $ipfw add 1005 queue 5 ip from "table(3)" to any out xmit $ext $ipfw add 1006 queue 6 ip from any to "table(3)" out xmit $int В итоге на вход показывает 3.9Mbit/s а исход выше двух не поднимается вообще никогда. Подскажите куда копать, уже 3-ий месяц ковыряемся с проблемой. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Giga-Byte Опубликовано 24 сентября, 2009 · Жалоба День добрый. Есть сетка из 4к абонентов, у всех прямые ip адреса. Общий канал - 280Мбит/с. Общая схема сети dlink(L2)->dlink(L3)->cisco3750->8-ми процессорный Xeon c 8Гб памяти (сетевуха - Intel® PRO/1000 Network Connection version - 1.7.3), FreeBSD 7.2-RELEASE-p3. На железке поднят bgp и шейпер. # 4Mbit/s $ipfw pipe 5 config bw 4Mbit/s queue 80Kbytes $ipfw pipe 6 config bw 4Mbit/s queue 80Kbytes $ipfw queue 5 config pipe 5 mask src-ip 0xffffffff $ipfw queue 6 config pipe 6 mask dst-ip 0xffffffff $ipfw add 1005 queue 5 ip from "table(3)" to any out xmit $ext $ipfw add 1006 queue 6 ip from any to "table(3)" out xmit $int В итоге на вход показывает 3.9Mbit/s а исход выше двух не поднимается вообще никогда. Подскажите куда копать, уже 3-ий месяц ковыряемся с проблемой. попробуйте без queue, т.е. пакеты сразу в pipe вгонятьну и думаю, надо queue 80Kbytes увеличить, а также net.inet.ip.dummynet.hash_size=65535 и имеет смысл выключить устаревание записей, чтобы создания динамического пайпа не отнимало драгоценные микросекунды net.inet.ip.dummynet.expire=0 а сетёвка одна??!?!?! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
hicks Опубликовано 24 сентября, 2009 (изменено) · Жалоба Нет немного не так у нас 6 интерфейсов гигабитных в серваке и 3 из них заняты. in1 - это порт с сервера на циску 3750G на циске поднят BGP весь трафик с сети сваливается на нее и она отправляет трафик или в пиринг или на in1 в интернет in2 - это 100 мегабит от оператора №1 in3 - это 300 мегабит от оператора №2 Значит схема такая трафик приходит в сервер по in1 ( на сервере опять же поднят BGP который пилит каналы ) И в зависимости от того куда кажет BGP трафик уходит или в один или в другой канал или in2 или in 3. Интерфейсы на in2 - 100 мегабит на in3 - 1 гигабит 3 сетевых свободны, может покопать в эту сторону ? Изменено 24 сентября, 2009 пользователем hicks Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jab Опубликовано 24 сентября, 2009 · Жалоба $ipfw pipe 5 config mask src-ip 0xffffffff bw 4Mbit/s queue 100 buckets 512 $ipfw pipe 6 config mask dst-ip 0xffffffff bw 4Mbit/s queue 100 buckets 512 $ipfw add 1005 pipe 5 ip from "table(3)" to any out xmit $ext $ipfw add 1006 pipe 6 ip from any to "table(3)" out xmit $int Должно быть достаточно. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
hicks Опубликовано 24 сентября, 2009 (изменено) · Жалоба jab, На 7 Мбитах показывает 7 на вход и 4 на выход. Непонятно где затычка. Изменено 24 сентября, 2009 пользователем hicks Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jab Опубликовано 24 сентября, 2009 · Жалоба jab, На 7 Мбитах показывает 7 на вход и 4 на выход. Непонятно где затычка. Подземный стук не лечим, телепаты в отпуске. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
hicks Опубликовано 24 сентября, 2009 (изменено) · Жалоба Подземный стук не лечим, телепаты в отпуске. jab, Спасибо за помощь. Теперь мы хотя бы уверены, что проблема не в правилах. Будем искать дальше. Изменено 24 сентября, 2009 пользователем hicks Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jab Опубликовано 24 сентября, 2009 · Жалоба Подземный стук не лечим, телепаты в отпуске. :) jab, Спасибо за помощь. Теперь мы хотя бы уверены, что проблема не в правилах. Будем искать дальше. Проблема не в тех правилах, которые я Вам дал. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
hicks Опубликовано 24 сентября, 2009 · Жалоба Проблема не в тех правилах, которые я Вам дал. Изначально у нас такие правила и были. Те, что я привел были взяты с этого форума. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jab Опубликовано 24 сентября, 2009 · Жалоба Ну я конечно понимаю, что нужно 3 месяца ковыряться, вместо того, чтобы сделать пару правил на loopback, и протестировать скорость сквозь них локально. Ведь не каждый восьмипроцессорный xeon это выдержит без разрушения всех своих восьми гигабайт памяти, к нему же еще и прокладка соответствующая нужна. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kapa Опубликовано 25 сентября, 2009 · Жалоба $ipfw pipe 5 config mask src-ip 0xffffffff bw 4Mbit/s queue 100 buckets 512 $ipfw pipe 6 config mask dst-ip 0xffffffff bw 4Mbit/s queue 100 buckets 512 $ipfw add 1005 pipe 5 ip from "table(3)" to any out xmit $ext $ipfw add 1006 pipe 6 ip from any to "table(3)" out xmit $int Должно быть достаточно. А можно поинтересоваться почему именно такой выбор размера очереди и количества buckets?Это вычислено как-то от ширины полосы или подобрано опытным путём? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jab Опубликовано 25 сентября, 2009 · Жалоба А можно поинтересоваться почему именно такой выбор размера очереди и количества buckets?Это вычислено как-то от ширины полосы или подобрано опытным путём? Никак не вычислено, взял со своего боевого шейпера. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kapa Опубликовано 25 сентября, 2009 · Жалоба Никак не вычислено, взял со своего боевого шейпера.Но туда-то оно кем-то было забито? :) Прям руки чешутся попробовать теперь на своём....хотя работает прекрасно и без queue и backets Правда net.inet.ip.dummynet.hash_size задран до 65536 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jab Опубликовано 25 сентября, 2009 · Жалоба Но туда-то оно кем-то было забито? :) "- Девочка, что это ты жуешь ? - Не жнаю, оно шамо в рот жаполжло." (с) анекдот Прям руки чешутся попробовать теперь на своём....хотя работает прекрасно и без queue и backetsПравда net.inet.ip.dummynet.hash_size задран до 65536 Работает - не трогать. ipfw pipe show прекрасно показывает сколько у вас там queue и buckets по умолчанию. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kapa Опубликовано 25 сентября, 2009 · Жалоба Работает - не трогать.знаю, но вдруг у кого-то волшебное слово, а я упустил :) ipfw pipe show прекрасно показывает сколько у вас там queue и buckets по умолчанию.ну так и показывает - много раз по 65536.Под миллион показывает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ibmed Опубликовано 9 октября, 2009 (изменено) · Жалоба Не победили? У нас такая же ситуация. FreeBSD. dummynet. Входящий - все красиво. Исходящий - ниже, чем должен быть. Некрасиво лечится увеличением настроек bw на трубу процентов на 40.. Изменено 9 октября, 2009 пользователем ibmed Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
YuriyUA Опубликовано 13 октября, 2009 · Жалоба В итоге на вход показывает 3.9Mbit/s а исход выше двух не поднимается вообще никогда. В шейпах пишите не 4Mbit/s, а 4096Kbit/s - и будет вместо 3.9 точные 4. А вот с исходом - ситуация аналогичная. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
UTP Опубликовано 14 октября, 2009 · Жалоба А если попробовать просумировать все вышесказаное. Есть несколько серверов под FreeBSD с mpd5+ipfw+dummynet через tablearg pipe tablearg ip from any to table(10) out pipe tablearg ip from table(20) to any in Трафика проходит порядка 400Mbit/s на каждый Правил в таблицах порядка 2500 Проблемы: 1) плохо шейпит исходящий трафик, да понимаю что нельзя шейпить на in, но при текущей схеме это не реально. варианты ришений: переход на ng_car, розделять на шейпер и брас 2) иногда у некоторых абонентов не шейпиться канал, хотя когда смотриш конфиг пайпа все в порядке. Лечиться удалением/добавлением ip в таблицу. варианты ришений: делать для каждого тарифного плана отдельную таблицу Что можете посоветовать в даной ситуацыи? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 14 октября, 2009 (изменено) · Жалоба В большинстве случаев проблемы связаны с тем, что dummynet упирается в ограничения размеров своих структур данных, установленные по умолчанию. Поэтому без `sysctl net.inet.ip` и указания величины HZ какое-либо обсуждение бессмысленно. А шейпер и border router безусловно нужно делать на разных машинах. Не стоит перегружать функциями одно устройство, потому что становится сложнее находить источник проблемы. Изменено 14 октября, 2009 пользователем photon Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jab Опубликовано 14 октября, 2009 · Жалоба Лучше просто не отвечать на вопросы к которым не прилагается dmesg, sysctl -a, systat -vmstat, netstat -w1, ipfw sh, pfctl -s info и cat /dev/urandom Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
martin74 Опубликовано 14 октября, 2009 · Жалоба долго вас читал. Расскажите убогому, что вам даст cat /dev/urandom Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
jab Опубликовано 14 октября, 2009 · Жалоба глубокое моральное удовлетворение :-))) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
martin74 Опубликовано 14 октября, 2009 · Жалоба вопросов больше не имею.... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 14 октября, 2009 · Жалоба <br /> Лучше просто не отвечать на вопросы к которым не прилагается dmesg, sysctl -a, systat -vmstat, netstat -w1, ipfw sh, pfctl -s info и cat /dev/urandom<br /> Рандом нужно было в середину ставить, он важнее :) и заметить сложнее ) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
UTP Опубликовано 15 октября, 2009 (изменено) · Жалоба Пока машина не под нагрузкой, трафика порядка 200Мбит (453 Users) FreeBSD 7.2-RELEASE-p3 FreeBSD 7.2-RELEASE-p3 #2: amd64 CPU: Intel® Core2 Quad CPU Q9550 @ 2.83GHz (2833.02-MHz K8-class CPU) usable memory = 2081468416 (1985 MB) avail memory = 2004656128 (1911 MB) em0@pci0:1:0:0: class=0x020000 card=0x115e8086 chip=0x105e8086 rev=0x06 hdr=0x00 em1@pci0:1:0:1: class=0x020000 card=0x115e8086 chip=0x105e8086 rev=0x06 hdr=0x00 sysctl: net.inet.ip.dummynet.hash_size=65535 net.inet.ip.dummynet.max_chain_len=10240 net.inet.ip.dummynet.io_fast=1 kern.ipc.maxsockbuf=1000000 dev.em.0.rx_abs_int_delay=1000 dev.em.0.tx_abs_int_delay=1000 dev.em.1.rx_abs_int_delay=1000 dev.em.1.tx_abs_int_delay=1000 dev.em.0.rx_int_delay=600 dev.em.0.tx_int_delay=600 dev.em.1.rx_int_delay=600 dev.em.1.tx_int_delay=600 net.inet.ip.fw.one_pass=1 net.inet.ip.fastforwarding=1 net.isr.direct=1 net.graph.recvspace=350000 net.graph.maxdgram=350000 dev.em.0.rx_kthreads=6 dev.em.1.rx_kthreads=6 привязан dummynet к одному из ядер systat -v 1 users Load 0.59 0.58 0.54 Oct 15 14:44 Mem:KB REAL VIRTUAL VN PAGER SWAP PAGER Tot Share Tot Share Free in out in out Act 31076 5068 100032 8344 706264 count All 130732 5508 12742256 9840 pages Proc: Interrupts r p d s w Csw Trp Sys Int Sof Flt 1058 cow 9877 total 22 45k 3846 18k 1879 986 3786 1542 zfod 1 uhci4++ 19 ozfod 1997 cpu0: time 20.6%Sys 0.5%Intr 2.0%User 0.0%Nice 76.9%Idle %ozfod 943 em0 irq256 | | | | | | | | | | | daefr 935 em1 irq257 ==========+> 2042 prcfr 1997 cpu1: time 26 dtbuf 3216 totfr 2002 cpu2: time Namei Name-cache Dir-cache 100000 desvn react 2002 cpu3: time Calls hits % hits % 63921 numvn pdwak 7235 7235 100 24997 frevn pdpgs intrn Disks ad4 406228 wire KB/t 16.00 27924 act tps 1 831452 inact MB/s 0.01 12872 cache %busy 0 693392 free 213184 buf netstat -w1 input (Total) output packets errs bytes packets errs bytes colls 109899 0 80306101 110361 0 88368653 0 106698 0 77774480 107810 0 85393650 0 108080 0 78244523 109350 0 87654676 0 108163 0 78848878 109448 0 88082915 0 107474 0 77476669 109711 0 87101879 0 109609 0 79378665 111653 0 89666621 0 114320 0 81278554 116110 0 91880617 0 110416 0 79542115 112970 0 89624646 0 top -SP last pid: 8623; load averages: 0.60, 0.58, 0.54 up 2+16:41:50 14:45:23 96 processes: 7 running, 74 sleeping, 15 waiting CPU 0: 0.8% user, 0.0% nice, 6.8% system, 0.4% interrupt, 92.1% idle CPU 1: 0.4% user, 0.0% nice, 31.6% system, 0.8% interrupt, 67.3% idle CPU 2: 0.4% user, 0.0% nice, 19.5% system, 0.7% interrupt, 79.4% idle CPU 3: 0.4% user, 0.0% nice, 20.6% system, 0.0% interrupt, 79.0% idle Mem: 27M Active, 812M Inact, 397M Wired, 13M Cache, 208M Buf, 677M Free Swap: 2048M Total, 2048M Free PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 14 root 1 171 ki31 0K 16K CPU0 0 43.0H 98.19% idle: cpu0 11 root 1 171 ki31 0K 16K RUN 3 51.1H 84.67% idle: cpu3 12 root 1 171 ki31 0K 16K RUN 2 49.5H 78.76% idle: cpu2 13 root 1 171 ki31 0K 16K CPU1 1 48.3H 67.58% idle: cpu1 28400 root 1 43 - 0K 16K WAIT 3 136:02 6.69% em1_rx_kthread_4 28398 root 1 43 - 0K 16K WAIT 2 135:47 6.69% em1_rx_kthread_2 35 root 1 43 - 0K 16K WAIT 1 300:25 6.49% em1_rx_kthread_0 36 root 1 43 - 0K 16K WAIT 1 300:17 5.86% em1_rx_kthread_1 28401 root 1 43 - 0K 16K CPU1 1 136:26 5.86% em1_rx_kthread_5 28399 root 1 43 - 0K 16K WAIT 1 136:12 5.86% em1_rx_kthread_3 31 root 1 43 - 0K 16K WAIT 1 267:47 5.57% em0_rx_kthread_0 28396 root 1 43 - 0K 16K WAIT 3 113:44 5.47% em0_rx_kthread_5 28394 root 1 43 - 0K 16K WAIT 3 113:40 5.37% em0_rx_kthread_3 32 root 1 43 - 0K 16K WAIT 2 267:37 5.18% em0_rx_kthread_1 28393 root 1 43 - 0K 16K CPU3 2 113:44 5.18% em0_rx_kthread_2 28395 root 1 43 - 0K 16K WAIT 1 113:44 4.98% em0_rx_kthread_4 34 root 1 -68 - 0K 16K WAIT 2 66:47 2.59% em1_txcleaner 16 root 1 -32 - 0K 16K WAIT 3 48:37 1.27% swi4: clock sio 56 root 1 -68 - 0K 16K - 0 20.8H 0.00% dummynet 3179 root 1 96 0 44632K 15948K select 2 68:25 0.00% mpd5 ipfw list 01000 pipe tablearg ip from any to table(10) out 01010 pipe tablearg ip from table(20) to any in Нуд канечно в этом зоопарке есть еще и нат :) pfctl -s info Status: Enabled for 2 days 16:46:53 Debug: Urgent State Table Total Rate current entries 42696 searches 20368136393 87337.1/s inserts 92602174 397.1/s removals 92559478 396.9/s Counters match 13272006141 56909.4/s bad-offset 0 0.0/s fragment 1731 0.0/s short 6542 0.0/s normalize 7460 0.0/s memory 0 0.0/s bad-timestamp 0 0.0/s congestion 0 0.0/s ip-option 38756 0.2/s proto-cksum 239385 1.0/s state-mismatch 1562852 6.7/s state-insert 48 0.0/s state-limit 0 0.0/s src-limit 0 0.0/s synproxy 0 0.0/s Изменено 15 октября, 2009 пользователем UTP Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...