Jump to content

Recommended Posts

Posted

Приветствую

 

Столкнулся с проблемой поиска железа для программного шейпера (FreeBSD 5.4).

Задача шейпить 2000-4000 адресов, и пропускать без шейпинга остальной трафик (10-15Kpps, 100 мегабит).

Существующие решения уже не справляются с загрузкой, дропают пакеты (2xXeon 3.06, L2 1024K).

Будет ли лучше перейти на Opteron 2.4 или остаться на Интеле (2xXeon 3.6 или чем черт не шутит двухядерный P4 EE).

 

У кого какие мысли? Или может попробовать Linux 2.6.x и TC (хотя у меня что-то сомнения на счет его производительности)?

Posted

krab,

1) 2000-4000 userov aktivnih(on-line)?

2) 15Kpps eto ostal'noj trafik ili ves' trafik?

3) Obchaja zagruzka kanala Kpps, Mbit/s?

4) Kakoj shiriny kanal 100Mb/s 1Gbit/s?

6) Vkljuchen li polling?

Posted
krab,

1) 2000-4000 userov aktivnih(on-line)?

2) 15Kpps eto ostal'noj trafik ili ves' trafik?

3) Obchaja zagruzka kanala Kpps, Mbit/s?

4) Kakoj shiriny kanal 100Mb/s 1Gbit/s?

6) Vkljuchen li polling?

1) те кого надо шейпить (это количество пайпов)

2) весь

3) 50-70Mbs

4) 100Mbs

6) Да HZ=4000

Posted
Делайте распределенную архитектуру. Другими словами - ставьте два сервера. И надежнее, и производительность удваивается..

каким образом это реализовать? часть резать на одном и часть на другом?

Posted
Делайте распределенную архитектуру. Другими словами - ставьте два сервера. И надежнее, и производительность удваивается..

каким образом это реализовать? часть резать на одном и часть на другом?

 

 

Да. Все равно 4000 клиентов явно не в одной подсети сидят.

Плюс можно взаимно зарезервировать роутеры, чтобы в случае падения одного второй мог подхватывать нагрузку.

Как это делать - вопрос слишком общий, вариантов много.

Posted

1) 2xXeon 3.06 ne mogut zagnutsja na 100Mbit/s

2) 70Mbit/s eto pri normal'nih uslovijah ne bolee 40Kpps sm. punkt 1.

3) poprobujte ispol'zovat' v pravilah tables i pipe s bitovimi maskami.

Takoj potok obrabativajet 2.6Ghz Atlon XP, v top-e pokazivaja 20% zagruzki, pri etom nabor pravil ne optimizirovan po-polnoj. Nuzhno smotret' nastroiki BSD grabli 99% v nih.

Posted
1) 2xXeon 3.06 ne mogut zagnutsja na 100Mbit/s

2) 70Mbit/s eto pri normal'nih uslovijah ne bolee 40Kpps sm. punkt 1.

3) poprobujte ispol'zovat' v pravilah tables i pipe s bitovimi maskami.

Takoj potok obrabativajet 2.6Ghz Atlon XP, v top-e pokazivaja 20% zagruzki, pri etom nabor pravil ne optimizirovan po-polnoj. Nuzhno smotret' nastroiki BSD grabli 99% v nih.

как я понимаю дело не в потоке а в количестве правил/пайпов ipfw

правила оптимизированы (т.е. via in/out и прочее)

привожу:

$ ipfw l|wc -l

   3384

$ netstat -w 1 -d         

           input        (Total)           output

  packets  errs      bytes    packets  errs      bytes colls drops

    15506     0    7165757      15237     0    5565053     0     0

    17476     0    8601284      16958     0    6345530     0     0

    16947     0    7891496      16728     0    6033655     0     0

    16031     0    7587958      15634     0    5881659     0     0

^C

$ cat /etc/sysctl.conf 

kern.polling.enable=1

kern.polling.user_frac=20

net.inet.ip.forwarding=1

#net.inet.ip.fastforwarding=1

#net.inet.tcp.blackhole=2

#net.inet.udp.blackhole=1

#kern.ipc.somaxconn=1024

net.inet.ip.fw.dyn_max=16384

net.inet.icmp.icmplim=50

net.inet.icmp.drop_redirect=1

net.inet.ip.redirect=0

#net.inet.icmp.log_redirect=1

#net.inet.ip.redirect=0

#net.inet.tcp.sendspace=32768

#net.inet.tcp.recvspace=32768

#net.link.ether.inet.max_age=1200

#net.inet.icmp.maskrepl=0

#kern.polling.burst_max=300

#kern.polling.poll_in_trap=1

#kern.polling.idle_poll=1

$ top

last pid: 14569;  load averages:  1.13,  1.07,  1.07                                                 up 2+03:04:53  19:21:05

33 processes:  1 running, 32 sleeping

CPU states:  0.9% user,  0.0% nice,  2.7% system, 27.8% interrupt, 68.6% idle

Mem: 123M Active, 87M Inact, 143M Wired, 4K Cache, 111M Buf, 644M Free

Swap: 1000M Total, 1000M Free



 PID USERNAME PRI NICE   SIZE    RES STATE  C   TIME   WCPU    CPU COMMAND

5069 root      20  -15  5860K  5008K kserel 3 328:09  0.00%  0.00% ipcad

5075 root      96    0 74992K 74412K select 3  23:29  0.00%  0.00% bgpd

5071 root      96    0 43388K 42680K select 3   1:21  0.00%  0.00% zebra

5073 root      96    0  2428K  1764K select 0   1:07  0.00%  0.00% ripd

5101 root      96    0  2708K  2116K select 3   0:04  0.00%  0.00% sshd

5114 root       8    0  1356K  1036K nanslp 0   0:01  0.00%  0.00% cron

4982 root      96    0  1312K   896K select 1   0:01  0.00%  0.00% syslogd

13478 madint    96    0  5296K  2364K select 0   0:00  0.00%  0.00% sshd

13480 root       8    0  3120K  2000K wait   2   0:00  0.00%  0.00% bash

14271 root       5    0  3112K  1992K ttyin  1   0:00  0.00%  0.00% bash

14269 archie    96    0  5296K  2364K select 0   0:00  0.00%  0.00% sshd

14270 archie     8    0  3080K  1960K wait   3   0:00  0.00%  0.00% bash

13479 madint     8    0  3080K  1960K wait   2   0:00  0.00%  0.00% bash

14267 root       4    0  5332K  2308K sbwait 0   0:00  0.00%  0.00% sshd

13476 root       4    0  5332K  2308K sbwait 2   0:00  0.00%  0.00% sshd

14569 root      96    0  2380K  1672K CPU0   0   0:00  0.00%  0.00% top

5164 root       5    0  1280K   932K ttyin  2   0:00  0.00%  0.00% getty

5168 root       5    0  1280K   932K ttyin  1   0:00  0.00%  0.00% getty

5165 root       5    0  1280K   932K ttyin  3   0:00  0.00%  0.00% getty

5170 root       5    0  1280K   932K ttyin  2   0:00  0.00%  0.00% getty

5166 root       5    0  1280K   932K ttyin  3   0:00  0.00%  0.00% getty

5171 root       5    0  1280K   932K ttyin  1   0:00  0.00%  0.00% getty

5169 root       5    0  1280K   932K ttyin  1   0:00  0.00%  0.00% getty

5167 root       5    0  1280K   932K ttyin  2   0:00  0.00%  0.00% getty

5152 root     110    0  1436K  1088K select 0   0:00  0.00%  0.00% inetd

 244 root      20    0  1184K   576K pause  0   0:00  0.00%  0.00% adjkerntz

4962 root     115    0   516K   360K select 2   0:00  0.00%  0.00% devd

$ systat -v 1

   2 users    Load  1.16  1.08  1.08                  Sep  9 19:21



Mem:KB    REAL            VIRTUAL                     VN PAGER  SWAP PAGER

       Tot   Share      Tot    Share    Free         in  out     in  out

Act  127720    2188   157748     3048  660044 count

All  359488    4448  2442480     5916         pages

                                                                Interrupts

Proc:r  p  d  s  w    Csw  Trp  Sys  Int  Sof  Flt        cow    4129 total

    1       31     21601  3421147729502  423      146392 wire    128 8: rtc

                                                  125532 act         13: npx

2.1%Sys  28.5%Intr  0.6%User  0.0%Nice 68.8%Idl    88864 inact       14: ata

|    |    |    |    |    |    |    |    |    |          4 cache       26: ahd

=++++++++++++++>                                   660040 free        27: ahd

                                                         daefr       48: em0

Namei         Name-cache    Dir-cache                     prcfr       49: em1

   Calls     hits    %     hits    %                     react  4001 0: clk

                                                         pdwake

                                         zfod            pdpgs

Disks   da0 pass0 pass1                   ofod            intrn

KB/t   0.00  0.00  0.00                   %slo-z   113888 buf

tps       0     0     0                   tfree         5 dirtybuf

MB/s   0.00  0.00  0.00                             69985 desiredvnodes

% busy    0     0     0                             22791 numvnodes

                                                      28 freevnodes

НО ПРИ ЭТОМ ПАКЕТЫ ДРОПАЮТСЯ (т.е. на 100 пакетов стабильно 1-2 теряются при пинге с соседней машины, что совсем ненормально)

Есть какие-нибудь мысли?

Posted

krab, budem dejstvovat' po-pogovorke luchshee odin raz uvidet' chem sto raz uslychat':)

Vhodnije dannije:

1) Imejem 3(kol-vo po vkusu) tarifnih plana i sootvetstvujuschie im skorosti

- ECONOMICAL 1$ - 1Mbit/s

- BASE 10$ - 3Mbit/s

- PROGRESSIVE 100$ - 10Mbit/s

2) Mnozhestvo klientov kotorih nuzhno posheipit' v sootvetstvii s tarifnimi planami.

Chto neobhodimo:

-ipfw2

-dummynet

Realizacyja:

#!/bin/sh

ipfw="/sbin/ipfw -q"

ECONOMICAL=1

BASE=2

PROGRESSIVE=3

 

#Zdes' zabivajem nashi 2000 klientov.

#-------------TABLE ECONOMICAL----------

${ipfw} table ${ECONOMICAL} add 10.0.0.1/32

........

........

#-------------TABLE BASE--------------------

${ipfw} table ${BASE} add 10.0.1.1/32

........

........

#-------------TABLE PROGRESSIVE----------

${ipfw} table ${PROGRESSIVE} add 10.0.2.1/32

........

........

 

#Zdes' ogranichivajem po skorostjam.

#WORLD to ECONOMICAL

${ipfw} add pipe 1 ip from any to "table(${ECONOMICAL})" in

${ipfw} pipe 1 config mask dst-ip 0xffffffff bw 1Mbit/s

#ECONOMICAL to WORLD

${ipfw} add pipe 2 ip from "table(${ECONOMICAL})" to any out

${ipfw} pipe 2 config mask src-ip 0xffffffff bw 1Mbit/s

 

#WORLD to BASE

${ipfw} add pipe 3 ip from any to "table(${BASE})" in

${ipfw} pipe 3 config mask dst-ip 0xffffffff bw 3Mbit/s

#BASE to WORLD

${ipfw} add pipe 4 ip from "table(${BASE})" to any out

${ipfw} pipe 4 config mask src-ip 0xffffffff bw 3Mbit/s

 

#WORLD to BASE

${ipfw} add pipe 5 ip from any to "table(${PROGRESSIVE})" in

${ipfw} pipe 5 config mask dst-ip 0xffffffff bw 10Mbit/s

#BASE to WORLD

${ipfw} add pipe 6 ip from "table(${PROGRESSIVE})" to any out

${ipfw} pipe 6 config mask src-ip 0xffffffff bw 10Mbit/s

 

P.S.

V tablicu mozhno dobavlat' ne tol'ko konkretnije ip no i podseti, chto escho effektivnee, naprimer ${ipfw} table ${BASE} add 10.0.1.0/24 - odnoj strochkoj zabili 254 klienta, vot takim nehitrym sposobom mozhno zamenit' 10 kilometrovye cepochki pipov.

Posted

load averages: 1.13 а это нормально ? затребованно 113% ресурсов проца

может стоит с этой машинки вынести бгп ,нат, роутинг короче все кроме шейперов

 

либо как уже говорили использовать 2 сервака и более

Posted

Mozhno chut' escho usovershenstvovat' naprimer tak

1)

ext_if="fxp1"

int_if="fxp0"

${ipfw} add pipe 2 ip from any to "table(${ECONOMICAL})" via ${ext_if} in

${ipfw} pipe 2 config mask dst-ip 0xffffffff bw 1Mbit/s

${ipfw} add pipe 3 ip from "table(${ECONOMICAL})" to any via ${int_if} in

${ipfw} pipe 3 config mask src-ip 0xffffffff bw 1Mbit/s,

chtoby pakety ne proverjalis' 2 raza.

2)

mozhno poigratsja s razmerami ocheredej na pipe, no tam zavisit ot bandwidth kotoruju nado predostavit'.

3) Nuzhno pervim postavit' pravilo razreshajuchee prohodit' malen'kim paketam,

dlja togo chtoby na malih skorostjah shaper ne davil zaprosi na ustanovlenije novih sojedinenij, togda zakachki ne budut podavljat' drug druga i polzovateli smogut komfortno prosmatrivat' stranichki nesmotrja na aktivnyje zakachki, naprimer takoje

${ipfw} add pipe 1 ip from any to any iplen 48-100, ili bolee konkretnoje pravilo na pakety ustanovlenija sojedinenija.

P.S. v obchem ekperementirujte, a 2x3.06 Xeon bolee chem dostatochno.:)

Posted

Шапка кривовата, правильнее так:

#!/bin/sh

ipfw="/sbin/ipfw -q"

${ipfw} -f flush

${ipfw} -f pipe flush

echo all flushed

И лучше dummynet привязывать к конкретному интерфейсу, зачем шейпить локальный траффик

  • 8 months later...
Posted

SHeiper zagibajetsa ;(

sperva nachili pojevlatsa IP (RND) s visokim pingom ~ 1000ms

posle rebura shepera vdrug vso stalo ploxa

nesmatra na to chto u sheipera CPU indl 60% (mashina 2xCPU xeon 3.0GHz)

 

shema takaja:

 

inet

^

+++

+++ bgp

+++

+

+++

+ + sheiper

+++

+

+++

+ + L3 swich saberajet v kuchu /25;/24; (6k ip)

+++

+

 

IBM# ipfw l | wc -l

ipfw: DEPRECATED: 'l' matched 'list' as a sub-string

118

 

 

IBM# netstat -w 1 -d

input (Total) output

packets errs bytes packets errs bytes colls drops

78337 0 62363070 78322 0 62211101 0 0

81391 0 64840212 81385 0 64688306 0 0

81038 0 64628723 81039 0 64492204 0 0

81047 0 64438166 81035 0 64287401 0 0

79829 0 63260906 79844 0 63117561 0 0

 

1) dabavitj v shemu isho adin sheiper v cepochku i raznesti zadachi

2) dabavitj v shemu isho adin sheiper paralenij sheiper i L3 swich rznesa etim nogruzku.

 

3) ?

Posted

Maris, какие интерфейсы на роутере (em, bge)? Полгигабита через один шейпер это вообще сильно :o

Ну и sysctl net.inet.ip.dummynet.hash_size тоже в студию.

Posted

em

 

adna onbord , vtaraja dvux glavaja na pci-x

vso begala cherez pci-x in/out

raznos: "in" na pci-x "out" na onbord , trabl poka 2 dna nevijevlalsa.

 

dummynet sluchana neispolzujet kokijeta bufera na setovkax ?

"na sheipere zapustil ping, pri otkluchenija kabela ot setevoj, pisal chto nedostatoshna bufera ? "

 

net.inet.ip.dummynet.hash_size: 64

eto znachenije pitalsa menatj, pakreine mere v online izmenenij 0, posle izmenenij nuzna zdatj kokojeto vrema ?

Posted

попробуй написать в sysctl.conf net.inet.ip.dummynet.hash_size=16384

и перегазгрузиться или выполнить sysctl net.inet.ip.dummynet.hash_size=16384 с рутовыми правами и переконфигурить пайпы

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 и с Политикой конфиденциальности.