Jump to content

Recommended Posts

Posted

День добрый.

 

Есть сетка из 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-ий месяц ковыряемся с проблемой.

Posted
День добрый.

 

Есть сетка из 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

 

а сетёвка одна??!?!?!

Posted (edited)

Нет немного не так у нас 6 интерфейсов гигабитных в серваке и 3 из них заняты.

 

in1 - это порт с сервера на циску 3750G

 

на циске поднят BGP весь трафик с сети сваливается на нее и она отправляет трафик или в пиринг или на in1 в интернет

 

in2 - это 100 мегабит от оператора №1

 

in3 - это 300 мегабит от оператора №2

 

Значит схема такая трафик приходит в сервер по in1 ( на сервере опять же поднят BGP который пилит каналы ) И в зависимости от того куда кажет BGP трафик уходит или в один или в другой канал или in2 или in 3.

 

Интерфейсы на in2 - 100 мегабит на in3 - 1 гигабит

 

 

3 сетевых свободны, может покопать в эту сторону ?

Edited by hicks
Posted

$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

 

Должно быть достаточно.

Posted
jab, На 7 Мбитах показывает 7 на вход и 4 на выход. Непонятно где затычка.

Подземный стук не лечим, телепаты в отпуске.

Posted (edited)
Подземный стук не лечим, телепаты в отпуске.

jab, Спасибо за помощь. Теперь мы хотя бы уверены, что проблема не в правилах. Будем искать дальше.

Edited by hicks
Posted
Подземный стук не лечим, телепаты в отпуске.

:)

 

jab, Спасибо за помощь. Теперь мы хотя бы уверены, что проблема не в правилах. Будем искать дальше.

Проблема не в тех правилах, которые я Вам дал.

Posted
Проблема не в тех правилах, которые я Вам дал.

Изначально у нас такие правила и были. Те, что я привел были взяты с этого форума.

 

Posted

 

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

соответствующая нужна.

Posted
$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?

Это вычислено как-то от ширины полосы или подобрано опытным путём?

Posted
А можно поинтересоваться почему именно такой выбор размера очереди и количества buckets?

Это вычислено как-то от ширины полосы или подобрано опытным путём?

Никак не вычислено, взял со своего боевого шейпера.

Posted
Никак не вычислено, взял со своего боевого шейпера.
Но туда-то оно кем-то было забито? :)

 

Прям руки чешутся попробовать теперь на своём....хотя работает прекрасно и без queue и backets

Правда net.inet.ip.dummynet.hash_size задран до 65536

Posted
Но туда-то оно кем-то было забито? :)

"- Девочка, что это ты жуешь ?

- Не жнаю, оно шамо в рот жаполжло." (с) анекдот

 

Прям руки чешутся попробовать теперь на своём....хотя работает прекрасно и без queue и backets

Правда net.inet.ip.dummynet.hash_size задран до 65536

Работает - не трогать. ipfw pipe show прекрасно показывает сколько у вас там queue и buckets по умолчанию.

Posted
Работает - не трогать.
знаю, но вдруг у кого-то волшебное слово, а я упустил :)

 

ipfw pipe show прекрасно показывает сколько у вас там queue и buckets по умолчанию.
ну так и показывает - много раз по 65536.

Под миллион показывает.

 

  • 2 weeks later...
Posted (edited)

Не победили?

У нас такая же ситуация.

FreeBSD. dummynet.

Входящий - все красиво. Исходящий - ниже, чем должен быть.

Некрасиво лечится увеличением настроек bw на трубу процентов на 40..

Edited by ibmed
Posted
В итоге на вход показывает 3.9Mbit/s а исход выше двух не поднимается вообще никогда.

В шейпах пишите не 4Mbit/s, а 4096Kbit/s - и будет вместо 3.9 точные 4.

 

А вот с исходом - ситуация аналогичная.

Posted

А если попробовать просумировать все вышесказаное.

Есть несколько серверов под 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 в таблицу.

 

варианты ришений: делать для каждого тарифного плана отдельную таблицу

 

Что можете посоветовать в даной ситуацыи?

Posted (edited)

В большинстве случаев проблемы связаны с тем, что dummynet упирается в ограничения размеров своих структур данных, установленные по умолчанию. Поэтому без `sysctl net.inet.ip` и указания величины HZ какое-либо обсуждение бессмысленно. А шейпер и border router безусловно нужно делать на разных машинах. Не стоит перегружать функциями одно устройство, потому что становится сложнее находить источник проблемы.

Edited by photon
Posted

 

Лучше просто не отвечать на вопросы к которым не прилагается dmesg, sysctl -a, systat -vmstat, netstat -w1, ipfw sh, pfctl -s info и cat /dev/urandom

Posted
<br /> Лучше просто не отвечать на вопросы к которым не прилагается dmesg, sysctl -a, systat -vmstat, netstat -w1, ipfw sh, pfctl -s info и cat /dev/urandom<br />

Рандом нужно было в середину ставить, он важнее :)

и заметить сложнее )

Posted (edited)

Пока машина не под нагрузкой, трафика порядка 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

Edited by UTP

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.