BadRuss Опубликовано 11 сентября, 2009 · Жалоба sar -n EDEV 5 за минуту mpstat -A 5 за минуту Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
taric Опубликовано 11 сентября, 2009 (изменено) · Жалоба Такие же симптомы. У нас роутер: 2xAMD Opteron 2212 2.0GHz проца, 4 Gb памяти, встроеная двухпортовая Broadcom Corporation NetXtreme BCM5780 Gigabit Ethernet и вставлена двохпортовая интел Intel Corporation 82546EB Gigabit Ethernet Controller. На роутере нат, шейпер с хешами на 10к адресов ipset, фаер. sar -n DEV 1 Linux 2.6.20-1.2320.1.113billsmp (VPN3) 11.09.2009 23:44:03 IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s 23:44:04 lo 0,00 0,00 0,00 0,00 0,00 0,00 0,00 23:44:04 eth0 24640,00 24189,00 11036272,00 20544477,00 0,00 0,00 0,00 23:44:04 eth1 0,00 0,00 0,00 0,00 0,00 0,00 0,00 23:44:04 eth2 0,00 0,00 0,00 0,00 0,00 0,00 0,00 23:44:04 eth3 24570,00 24743,00 20665994,00 11066997,00 0,00 0,00 0,00 23:44:04 eth4 0,00 0,00 0,00 0,00 0,00 0,00 0,00 23:44:04 imq0 24584,00 24320,00 10618575,00 10394712,00 0,00 0,00 0,00 23:44:04 imq1 24105,00 24199,00 20102201,00 20210717,00 0,00 0,00 0,00 23:44:04 imq2 0,00 0,00 0,00 0,00 0,00 0,00 0,00 23:44:04 imq3 0,00 0,00 0,00 0,00 0,00 0,00 0,00 23:44:04 gre0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Среднее: IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s Среднее: lo 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Среднее: eth0 24640,00 24189,00 11036272,00 20544477,00 0,00 0,00 0,00 Среднее: eth1 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Среднее: eth2 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Среднее: eth3 24570,00 24743,00 20665994,00 11066997,00 0,00 0,00 0,00 Среднее: eth4 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Среднее: imq0 24584,00 24320,00 10618575,00 10394712,00 0,00 0,00 0,00 Среднее: imq1 24105,00 24199,00 20102201,00 20210717,00 0,00 0,00 0,00 Среднее: imq2 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Среднее: imq3 0,00 0,00 0,00 0,00 0,00 0,00 0,00 Среднее: gre0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 top - 00:08:53 up 4 days, 2:57, 2 users, load average: 1.50, 1.61, 1.59 Tasks: 86 total, 3 running, 83 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0% us, 0.0% sy, 0.0% ni, 74.8% id, 0.2% wa, 0.0% hi, 25.0% si, 0.0% st Mem: 4137680k total, 2126852k used, 2010828k free, 223676k buffers Swap: 8795548k total, 0k used, 8795548k free, 219024k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 12 root 39 19 0 0 0 R 100 0.0 2059:10 ksoftirqd/3 1 root 15 0 1956 688 596 S 0 0.0 0:01.05 init 2 root RT 0 0 0 0 S 0 0.0 0:01.93 migration/0 3 root 34 19 0 0 0 S 0 0.0 0:00.10 ksoftirqd/0 4 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/0 $ cat /proc/interrupts CPU0 CPU1 CPU2 CPU3 0: 1186 148443 5716763 348526440 IO-APIC-edge timer 1: 0 0 5 488 IO-APIC-edge i8042 2: 0 0 0 0 XT-PIC-XT cascade 6: 0 0 0 5 IO-APIC-edge floppy 8: 0 0 0 1 IO-APIC-edge rtc 9: 0 0 0 0 XT-PIC-XT acpi 10: 0 0 0 2 IO-APIC-fasteoi ehci_hcd:usb1, ohci_hcd:usb2, ohci_hcd:usb3 11: 0 0 0 0 IO-APIC-fasteoi libata 12: 0 0 0 4 IO-APIC-edge i8042 14: 12 1994 54207 3113420 IO-APIC-edge ide0 16: 9 5049 122777 5983237 IO-APIC-fasteoi eth4 20: 2148 304459 14343208 1495690145 IO-APIC-fasteoi eth0 21: 1 745 28937 147073 IO-APIC-fasteoi eth1 27: 3004 717115 49594481 2300287721 IO-APIC-fasteoi eth3 28: 1 235 5596 1302720 IO-APIC-fasteoi aacraid NMI: 0 0 0 0 LOC: 354388880 354389072 354388879 354385080 ERR: 0 MIS: 0 sbin/ethtool -i eth0 driver: e1000 version: 7.6.15.4-NAPI firmware-version: N/A bus-info: 0000:02:07.0 /sbin/ethtool -i eth3 driver: tg3 version: 3.72 firmware-version: 5780-v3.24 bus-info: 0000:04:04.1 /sbin/ethtool -g eth0 Ring parameters for eth0: Pre-set maximums: RX: 4096 RX Mini: 0 RX Jumbo: 0 TX: 4096 Current hardware settings: RX: 4096 RX Mini: 0 RX Jumbo: 0 TX: 4096 /sbin/ethtool -g eth3 Ring parameters for eth3: Pre-set maximums: RX: 511 RX Mini: 0 RX Jumbo: 0 TX: 511 Current hardware settings: RX: 511 RX Mini: 0 RX Jumbo: 0 TX: 511 Когда отключаеш шейпер нагрузка падает до 0. Ввел хеши, думал случится чудо..... Что посоветуете? Изменено 11 сентября, 2009 пользователем taric Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
SokolovS Опубликовано 11 сентября, 2009 · Жалоба Когда отключаеш шейпер нагрузка падает до 0. Ввел хеши, думал случится чудо..... Что посоветуете?Чуда не произошло? Должно было вобще-то, если дело действительно в шейпере. Ты уверен, что у тебя сопоставление при поиске класса выполняется именно по хешу? Потому что при линейном шейпере на 10к, должно было произойти огромное облегчение после перехода на хеш.Кстати очередь сетевушки какую ставите на гигабитный канал? По идее она должна соотноситься с tcp backlog. Покрутите net.ipv4.tcp_max_syn_backlog net.core.netdev_max_backlog На загрузку CPU по идее влиять не должно, но увеличивает максимальную пропускную способность, в замен на увеличение латентности. Опять же смотрите NAPI должен быть, для eth3 я что то в названии драйвера этого не увидел, есть? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Max P Опубликовано 12 сентября, 2009 · Жалоба хэш нужно делать не один, а деревом, тогда точно сильно полегчать должно Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vitalyb Опубликовано 12 сентября, 2009 · Жалоба taric 12 root 39 19 0 0 0 R 100 0.0 2059:10 ksoftirqd/3Банально CPU не хватает, смотрите как оптимизировать tc/iptables и/или метяйте сетевуху и/или уносите оттуда NAT и избавляйтесь от IMQ. Xeon 5110 1.6GHz без ната лопатит по 50кппс в обоих направлениях с ~75% загрузкой. SokolovS Почему-то кажется, что *backlog на форвардинг трафика в принципе влиять не должно, а только на установленные соединения к самому серверу. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
SokolovS Опубликовано 12 сентября, 2009 · Жалоба 2vitalyb: очередь в сетевухе точно влияет на форвард, особенно на больших скоростях. Если на шейпере используется роутинг а не бриджинг, то и tcp backlog влияет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
2c2i Опубликовано 12 сентября, 2009 · Жалоба 2vitalyb: очередь в сетевухе точно влияет на форвард, особенно на больших скоростях. Если на шейпере используется роутинг а не бриджинг, то и tcp backlog влияет. Поясните пожалуста как тюнинг tcp влияет на роутинг и шейпинг. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
SokolovS Опубликовано 12 сентября, 2009 · Жалоба Я не писал что это влияет на шейпинг, скорее на максимально выжимаемую из интерфейса скорость. А что форвард уже в реалтайме без буферов выполняется? При роутинге как я понимаю задействуется L3 и те же самые буферы? Могу ошибаться, поправьте. То что буфер сетевух и наличие NAPI/poling влияет на максимльно выжимаемую скорость это точно, проверено многими в т.ч. и мной на практике, иначе CPU не по делу грузиться будет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
taric Опубликовано 12 сентября, 2009 (изменено) · Жалоба 2Max P: Шейп такого вида: $tc qdisc add dev imq0 root handle 1: prio bands 3 $tc qdisc add dev imq0 parent 1:1 handle 10: pfifo $tc qdisc add dev imq0 parent 1:2 handle 11: pfifo $tc qdisc add dev imq0 parent 1:3 handle 12: htb default d $tc class add dev imq0 parent 12: classid 12:d htb rate 57078584bit ceil 968884224bit quantum 968884224 $tc qdisc add dev imq0 parent 12:d handle d sfq perturb 5 # hash filters 10.30.0.0/16 $tc filter add dev imq0 parent 12: prio 3 handle 3: protocol ip u32 divisor 256 $tc filter add dev imq0 parent 12: prio 3 handle 4: protocol ip u32 divisor 256 $tc filter add dev imq0 protocol ip parent 12: prio 3 u32 match ip src 10.30.0.0/16 hashkey mask 0x0000ff00 at 12 link 3: $tc filter add dev imq0 protocol ip parent 12: prio 3 u32 match ip src 10.30.0.0/16 hashkey mask 0x000000ff at 12 link 4: $tc class add dev imq0 parent 12: classid 12:1233 htb rate 262144bit ceil 262144bit quantum 1514 mtu 16500 $tc qdisc add dev imq0 parent 12:1233 handle 1233: sfq perturb 5 $tc filter add dev imq0 protocol ip parent 12: prio 7 u32 ht 3:14: ht 4:21: match ip src 10.30.20.33 flowid 12:1233 ......... ......... $tc filter add dev imq0 protocol ip parent 12:0 prio 4 u32 match ip src 10.30.0.0/16 flowid 1:3 #hash filters 10.20.0.0/16 $tc filter add dev imq0 parent 12: prio 3 handle 5: protocol ip u32 divisor 256 $tc filter add dev imq0 parent 12: prio 3 handle 6: protocol ip u32 divisor 256 $tc filter add dev imq0 protocol ip parent 12: prio 3 u32 match ip src 10.20.0.0/16 hashkey mask 0x0000ff00 at 12 link 5: $tc filter add dev imq0 protocol ip parent 12: prio 3 u32 match ip src 10.20.0.0/16 hashkey mask 0x000000ff at 12 link 6: $tc class add dev imq0 parent 12: classid 12:2aa5 htb rate 65536bit ceil 65536bit quantum 1514 mtu 16500 $tc qdisc add dev imq0 parent 12:2aa5 handle 2aa5: sfq perturb 5 $tc filter add dev imq0 protocol ip parent 12: prio 7 u32 ht 5:ac: ht 6:7a: match ip src 10.20.172.122 flowid 12:2aa5 ........... ........... $tc filter add dev imq0 protocol ip parent 1:0 prio 4 u32 match ip src 10.20.0.0/16 flowid 1:3 и еще пару сетей /16 в таком виде для imq1 идентично..... может по другому переписать? 2SokolovS: по поводу NAPI для eth3 я так понимаю нужно посвежее ядро поставить или есть другой способ? Вот чаcть вывода sysctl -a: net.nf_conntrack_max = 262144 net.netfilter.nf_conntrack_icmp_timeout = 30 net.netfilter.nf_conntrack_udp_timeout_stream = 60 net.netfilter.nf_conntrack_udp_timeout = 4 net.netfilter.nf_conntrack_tcp_max_retrans = 3 net.netfilter.nf_conntrack_tcp_be_liberal = 0 net.netfilter.nf_conntrack_tcp_loose = 3 net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 150 net.netfilter.nf_conntrack_tcp_timeout_close = 10 net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120 net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30 net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60 net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120 net.netfilter.nf_conntrack_tcp_timeout_established = 100 net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60 net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120 net.netfilter.nf_conntrack_log_invalid = 0 net.netfilter.nf_conntrack_checksum = 1 net.netfilter.nf_conntrack_buckets = 32768 net.netfilter.nf_conntrack_count = 55548 net.netfilter.nf_conntrack_max = 262144 net.netfilter.nf_conntrack_generic_timeout = 150 net.unix.max_dgram_qlen = 10 net.token-ring.rif_timeout = 600000 net.ipv4.netfilter.ip_conntrack_log_invalid = 0 net.ipv4.netfilter.ip_conntrack_checksum = 1 net.ipv4.netfilter.ip_conntrack_buckets = 32768 net.ipv4.netfilter.ip_conntrack_count = 55538 net.ipv4.netfilter.ip_conntrack_max = 262144 net.ipv4.netfilter.ip_conntrack_icmp_timeout = 30 net.ipv4.netfilter.ip_conntrack_udp_timeout_stream = 60 net.ipv4.netfilter.ip_conntrack_udp_timeout = 4 net.ipv4.netfilter.ip_conntrack_tcp_max_retrans = 3 net.ipv4.netfilter.ip_conntrack_tcp_be_liberal = 0 net.ipv4.netfilter.ip_conntrack_tcp_loose = 3 net.ipv4.netfilter.ip_conntrack_tcp_timeout_max_retrans = 150 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 10 net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120 net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 30 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60 net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120 net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 100 net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60 net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 120 net.ipv4.netfilter.ip_conntrack_generic_timeout = 150 net.ipv4.conf.eth4.promote_secondaries = 0 net.ipv4.conf.eth4.force_igmp_version = 0 net.ipv4.conf.eth4.disable_policy = 0 net.ipv4.conf.eth4.disable_xfrm = 0 net.ipv4.conf.eth4.arp_accept = 0 net.ipv4.conf.eth4.arp_ignore = 0 net.ipv4.conf.eth4.arp_announce = 0 net.ipv4.conf.eth4.arp_filter = 0 net.ipv4.conf.eth4.tag = 0 net.ipv4.conf.eth4.log_martians = 0 net.ipv4.conf.eth4.bootp_relay = 0 net.ipv4.conf.eth4.medium_id = 0 net.ipv4.conf.eth4.proxy_arp = 0 net.ipv4.conf.eth4.accept_source_route = 0 net.ipv4.conf.eth4.send_redirects = 1 net.ipv4.conf.eth4.rp_filter = 1 net.ipv4.conf.eth4.shared_media = 1 net.ipv4.conf.eth4.secure_redirects = 1 net.ipv4.conf.eth4.accept_redirects = 1 net.ipv4.conf.eth4.mc_forwarding = 0 net.ipv4.conf.eth4.forwarding = 1 net.ipv4.conf.eth3.promote_secondaries = 0 net.ipv4.conf.eth3.force_igmp_version = 0 net.ipv4.conf.eth3.disable_policy = 0 net.ipv4.conf.eth3.disable_xfrm = 0 net.ipv4.conf.eth3.arp_accept = 0 net.ipv4.conf.eth3.arp_ignore = 0 net.ipv4.conf.eth3.arp_announce = 0 net.ipv4.conf.eth3.arp_filter = 0 net.ipv4.conf.eth3.tag = 0 net.ipv4.conf.eth3.log_martians = 0 net.ipv4.conf.eth3.bootp_relay = 0 net.ipv4.conf.eth3.medium_id = 0 net.ipv4.conf.eth3.proxy_arp = 0 net.ipv4.conf.eth3.accept_source_route = 0 net.ipv4.conf.eth3.send_redirects = 1 net.ipv4.conf.eth3.rp_filter = 1 net.ipv4.conf.eth3.shared_media = 1 net.ipv4.conf.eth3.secure_redirects = 1 net.ipv4.conf.eth3.accept_redirects = 1 net.ipv4.conf.eth3.mc_forwarding = 0 net.ipv4.conf.eth3.forwarding = 1 net.ipv4.conf.eth0.promote_secondaries = 0 net.ipv4.conf.eth0.force_igmp_version = 0 net.ipv4.conf.eth0.disable_policy = 0 net.ipv4.conf.eth0.disable_xfrm = 0 net.ipv4.conf.eth0.arp_accept = 0 net.ipv4.conf.eth0.arp_ignore = 0 net.ipv4.conf.eth0.arp_announce = 0 net.ipv4.conf.eth0.arp_filter = 0 net.ipv4.conf.eth0.tag = 0 net.ipv4.conf.eth0.log_martians = 0 net.ipv4.conf.eth0.bootp_relay = 0 net.ipv4.conf.eth0.medium_id = 0 net.ipv4.conf.eth0.proxy_arp = 0 net.ipv4.conf.eth0.accept_source_route = 0 net.ipv4.conf.eth0.send_redirects = 1 net.ipv4.conf.eth0.rp_filter = 1 net.ipv4.conf.eth0.shared_media = 1 net.ipv4.conf.eth0.secure_redirects = 1 net.ipv4.conf.eth0.accept_redirects = 1 net.ipv4.conf.eth0.mc_forwarding = 0 net.ipv4.conf.eth0.forwarding = 1 net.ipv4.conf.lo.promote_secondaries = 0 net.ipv4.conf.lo.force_igmp_version = 0 net.ipv4.conf.lo.disable_policy = 1 net.ipv4.conf.lo.disable_xfrm = 1 net.ipv4.conf.lo.arp_accept = 0 net.ipv4.conf.lo.arp_ignore = 0 net.ipv4.conf.lo.arp_announce = 0 net.ipv4.conf.lo.arp_filter = 0 net.ipv4.conf.lo.tag = 0 net.ipv4.conf.lo.log_martians = 0 net.ipv4.conf.lo.bootp_relay = 0 net.ipv4.conf.lo.medium_id = 0 net.ipv4.conf.lo.proxy_arp = 0 net.ipv4.conf.lo.accept_source_route = 1 net.ipv4.conf.lo.send_redirects = 1 net.ipv4.conf.lo.rp_filter = 0 net.ipv4.conf.lo.shared_media = 1 net.ipv4.conf.lo.secure_redirects = 1 net.ipv4.conf.lo.accept_redirects = 1 net.ipv4.conf.lo.mc_forwarding = 0 net.ipv4.conf.lo.forwarding = 1 net.ipv4.conf.default.promote_secondaries = 0 net.ipv4.conf.default.force_igmp_version = 0 net.ipv4.conf.default.disable_policy = 0 net.ipv4.conf.default.disable_xfrm = 0 net.ipv4.conf.default.arp_accept = 0 net.ipv4.conf.default.arp_ignore = 0 net.ipv4.conf.default.arp_announce = 0 net.ipv4.conf.default.arp_filter = 0 net.ipv4.conf.default.tag = 0 net.ipv4.conf.default.log_martians = 0 net.ipv4.conf.default.bootp_relay = 0 net.ipv4.conf.default.medium_id = 0 net.ipv4.conf.default.proxy_arp = 0 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.shared_media = 1 net.ipv4.conf.default.secure_redirects = 1 net.ipv4.conf.default.accept_redirects = 1 net.ipv4.conf.default.mc_forwarding = 0 net.ipv4.conf.default.forwarding = 1 net.ipv4.conf.all.promote_secondaries = 0 net.ipv4.conf.all.force_igmp_version = 0 net.ipv4.conf.all.disable_policy = 0 net.ipv4.conf.all.disable_xfrm = 0 net.ipv4.conf.all.arp_accept = 0 net.ipv4.conf.all.arp_ignore = 0 net.ipv4.conf.all.arp_announce = 0 net.ipv4.conf.all.arp_filter = 1 net.ipv4.conf.all.tag = 0 net.ipv4.conf.all.log_martians = 1 net.ipv4.conf.all.bootp_relay = 0 net.ipv4.conf.all.medium_id = 0 net.ipv4.conf.all.proxy_arp = 0 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.all.send_redirects = 1 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.all.shared_media = 1 net.ipv4.conf.all.secure_redirects = 1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.mc_forwarding = 0 net.ipv4.conf.all.forwarding = 1 net.ipv4.neigh.eth4.base_reachable_time_ms = 30000 net.ipv4.neigh.eth4.retrans_time_ms = 1000 net.ipv4.neigh.eth4.locktime = 99 net.ipv4.neigh.eth4.proxy_delay = 79 net.ipv4.neigh.eth4.anycast_delay = 99 net.ipv4.neigh.eth4.proxy_qlen = 64 net.ipv4.neigh.eth4.unres_qlen = 3 net.ipv4.neigh.eth4.gc_stale_time = 60 net.ipv4.neigh.eth4.delay_first_probe_time = 5 net.ipv4.neigh.eth4.base_reachable_time = 30 net.ipv4.neigh.eth4.retrans_time = 99 net.ipv4.neigh.eth4.app_solicit = 0 net.ipv4.neigh.eth4.ucast_solicit = 3 net.ipv4.neigh.eth4.mcast_solicit = 3 net.ipv4.neigh.eth3.base_reachable_time_ms = 30000 net.ipv4.neigh.eth3.retrans_time_ms = 1000 net.ipv4.neigh.eth3.locktime = 99 net.ipv4.neigh.eth3.proxy_delay = 79 net.ipv4.neigh.eth3.anycast_delay = 99 net.ipv4.neigh.eth3.proxy_qlen = 64 net.ipv4.neigh.eth3.unres_qlen = 3 net.ipv4.neigh.eth3.gc_stale_time = 60 net.ipv4.neigh.eth3.delay_first_probe_time = 5 net.ipv4.neigh.eth3.base_reachable_time = 30 net.ipv4.neigh.eth3.retrans_time = 99 net.ipv4.neigh.eth3.app_solicit = 0 net.ipv4.neigh.eth3.ucast_solicit = 3 net.ipv4.neigh.eth3.mcast_solicit = 3 net.ipv4.neigh.eth0.base_reachable_time_ms = 30000 net.ipv4.neigh.eth0.retrans_time_ms = 1000 net.ipv4.neigh.eth0.locktime = 99 net.ipv4.neigh.eth0.proxy_delay = 79 net.ipv4.neigh.eth0.anycast_delay = 99 net.ipv4.neigh.eth0.proxy_qlen = 64 net.ipv4.neigh.eth0.unres_qlen = 3 net.ipv4.neigh.eth0.gc_stale_time = 60 net.ipv4.neigh.eth0.delay_first_probe_time = 5 net.ipv4.neigh.eth0.base_reachable_time = 30 net.ipv4.neigh.eth0.retrans_time = 99 net.ipv4.neigh.eth0.app_solicit = 0 net.ipv4.neigh.eth0.ucast_solicit = 3 net.ipv4.neigh.eth0.mcast_solicit = 3 net.ipv4.neigh.lo.base_reachable_time_ms = 30000 net.ipv4.neigh.lo.retrans_time_ms = 1000 net.ipv4.neigh.lo.locktime = 99 net.ipv4.neigh.lo.proxy_delay = 79 net.ipv4.neigh.lo.anycast_delay = 99 net.ipv4.neigh.lo.proxy_qlen = 64 net.ipv4.neigh.lo.unres_qlen = 3 net.ipv4.neigh.lo.gc_stale_time = 60 net.ipv4.neigh.lo.delay_first_probe_time = 5 net.ipv4.neigh.lo.base_reachable_time = 30 net.ipv4.neigh.lo.retrans_time = 99 net.ipv4.neigh.lo.app_solicit = 0 net.ipv4.neigh.lo.ucast_solicit = 3 net.ipv4.neigh.lo.mcast_solicit = 3 net.ipv4.neigh.default.base_reachable_time_ms = 30000 net.ipv4.neigh.default.retrans_time_ms = 1000 net.ipv4.neigh.default.gc_thresh3 = 1024 net.ipv4.neigh.default.gc_thresh2 = 512 net.ipv4.neigh.default.gc_thresh1 = 128 net.ipv4.neigh.default.gc_interval = 30 net.ipv4.neigh.default.locktime = 99 net.ipv4.neigh.default.proxy_delay = 79 net.ipv4.neigh.default.anycast_delay = 99 net.ipv4.neigh.default.proxy_qlen = 64 net.ipv4.neigh.default.unres_qlen = 3 net.ipv4.neigh.default.gc_stale_time = 60 net.ipv4.neigh.default.delay_first_probe_time = 5 net.ipv4.neigh.default.base_reachable_time = 30 net.ipv4.neigh.default.retrans_time = 99 net.ipv4.neigh.default.app_solicit = 0 net.ipv4.neigh.default.ucast_solicit = 3 net.ipv4.neigh.default.mcast_solicit = 3 net.ipv4.tcp_allowed_congestion_control = bic reno net.ipv4.tcp_available_congestion_control = bic reno net.ipv4.cipso_rbm_strictvalid = 1 net.ipv4.cipso_rbm_optfmt = 0 net.ipv4.cipso_cache_bucket_size = 10 net.ipv4.cipso_cache_enable = 1 net.ipv4.tcp_slow_start_after_idle = 1 net.ipv4.tcp_dma_copybreak = 4096 net.ipv4.tcp_workaround_signed_windows = 0 net.ipv4.tcp_base_mss = 512 net.ipv4.tcp_mtu_probing = 0 net.ipv4.tcp_abc = 0 net.ipv4.tcp_congestion_control = bic net.ipv4.tcp_tso_win_divisor = 3 net.ipv4.tcp_moderate_rcvbuf = 1 net.ipv4.tcp_no_metrics_save = 0 net.ipv4.ipfrag_max_dist = 64 net.ipv4.ipfrag_secret_interval = 600 net.ipv4.tcp_low_latency = 0 net.ipv4.tcp_frto = 0 net.ipv4.tcp_tw_reuse = 0 net.ipv4.icmp_ratemask = 6168 net.ipv4.icmp_ratelimit = 1000 net.ipv4.tcp_adv_win_scale = 2 net.ipv4.tcp_app_win = 31 net.ipv4.tcp_rmem = 3000000 3000000 3000000 net.ipv4.tcp_wmem = 3000000 3000000 3000000 net.ipv4.tcp_mem = 3000000 3000000 3000000 net.ipv4.tcp_dsack = 1 net.ipv4.tcp_ecn = 0 net.ipv4.tcp_reordering = 3 net.ipv4.tcp_fack = 1 net.ipv4.tcp_orphan_retries = 0 net.ipv4.inet_peer_gc_maxtime = 120 net.ipv4.inet_peer_gc_mintime = 10 net.ipv4.inet_peer_maxttl = 600 net.ipv4.inet_peer_minttl = 120 net.ipv4.inet_peer_threshold = 65664 net.ipv4.igmp_max_msf = 10 net.ipv4.igmp_max_memberships = 20 net.ipv4.route.secret_interval = 600 net.ipv4.route.min_adv_mss = 256 net.ipv4.route.min_pmtu = 552 net.ipv4.route.mtu_expires = 600 net.ipv4.route.gc_elasticity = 8 net.ipv4.route.error_burst = 5000 net.ipv4.route.error_cost = 1000 net.ipv4.route.redirect_silence = 20480 net.ipv4.route.redirect_number = 9 net.ipv4.route.redirect_load = 20 net.ipv4.route.gc_interval = 60 net.ipv4.route.gc_timeout = 300 net.ipv4.route.gc_min_interval_ms = 500 net.ipv4.route.gc_min_interval = 0 net.ipv4.route.max_size = 524288 net.ipv4.route.gc_thresh = 32768 net.ipv4.route.max_delay = 10 net.ipv4.route.min_delay = 2 net.ipv4.icmp_errors_use_inbound_ifaddr = 0 net.ipv4.icmp_ignore_bogus_error_responses = 1 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.icmp_echo_ignore_all = 0 net.ipv4.ip_local_port_range = 32768 61000 net.ipv4.tcp_max_syn_backlog = 10000 net.ipv4.tcp_rfc1337 = 1 net.ipv4.tcp_stdurg = 0 net.ipv4.tcp_abort_on_overflow = 0 net.ipv4.tcp_tw_recycle = 0 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_fin_timeout = 60 net.ipv4.tcp_retries2 = 15 net.ipv4.tcp_retries1 = 3 net.ipv4.tcp_keepalive_intvl = 75 net.ipv4.tcp_keepalive_probes = 9 net.ipv4.tcp_keepalive_time = 7200 net.ipv4.ipfrag_time = 30 net.ipv4.ip_dynaddr = 0 net.ipv4.ipfrag_low_thresh = 196608 net.ipv4.ipfrag_high_thresh = 262144 net.ipv4.tcp_max_tw_buckets = 180000 net.ipv4.tcp_max_orphans = 131072 net.ipv4.tcp_synack_retries = 3 net.ipv4.tcp_syn_retries = 20 net.ipv4.ip_nonlocal_bind = 0 net.ipv4.ip_no_pmtu_disc = 0 net.ipv4.ip_default_ttl = 64 net.ipv4.ip_forward = 1 net.ipv4.tcp_retrans_collapse = 1 net.ipv4.tcp_sack = 1 net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_timestamps = 1 net.core.netdev_budget = 300 net.core.somaxconn = 128 net.core.xfrm_aevent_rseqth = 2 net.core.xfrm_aevent_etime = 10 net.core.optmem_max = 1000000 net.core.message_burst = 10 net.core.message_cost = 5 net.core.netdev_max_backlog = 10000 net.core.dev_weight = 64 net.core.rmem_default = 1048576 net.core.wmem_default = 1048576 net.core.rmem_max = 1048576 net.core.wmem_max = 1048576 Может кто-то поделится частью своей черной магии) Изменено 12 сентября, 2009 пользователем taric Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vitalyb Опубликовано 13 сентября, 2009 · Жалоба taric Уберите sfq и поставьте "на листах" pfifo. На сколько это повлияет не знаю, но pfifo определенно легче. И почему Вы решили, что на eth3 NAPI не работает? Вроде должен.... $tc filter add dev imq0 protocol ip parent 12: prio 3 u32 match ip src 10.30.0.0/16 hashkey mask 0x0000ff00 at 12 link 3:$tc filter add dev imq0 protocol ip parent 12: prio 3 u32 match ip src 10.30.0.0/16 hashkey mask 0x000000ff at 12 link 4: $tc class add dev imq0 parent 12: classid 12:1233 htb rate 262144bit ceil 262144bit quantum 1514 mtu 16500 $tc qdisc add dev imq0 parent 12:1233 handle 1233: sfq perturb 5 $tc filter add dev imq0 protocol ip parent 12: prio 7 u32 ht 3:14: ht 4:21: match ip src 10.30.20.33 flowid 12:1233 у меня на 2.6.30+iproute2-2.6.28 такой синтаксис не работает. Ошибки в нем нет, но работает только хеш-фильтр 4. Хеширование по больше чем 8 битам делается не так - надо "последовательно" применять хеши. #hash filters 10.20.0.0/16 там же на imq0 вообще не нужны - добавляете фильтры туда же куда и 10.30.0.0/16 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
2c2i Опубликовано 13 сентября, 2009 (изменено) · Жалоба Я не писал что это влияет на шейпинг, скорее на максимально выжимаемую из интерфейса скорость.А что форвард уже в реалтайме без буферов выполняется? При роутинге как я понимаю задействуется L3 и те же самые буферы? Могу ошибаться, поправьте. То что буфер сетевух и наличие NAPI/poling влияет на максимльно выжимаемую скорость это точно, проверено многими в т.ч. и мной на практике, иначе CPU не по делу грузиться будет. tcp backlog всетаки не буфер сетевух, а tcp - это L4. Тюнинг tcp, как уже выше написали, повлияет только на соединения открываемые роутером/к роутеру, и обычно их очень мало - bgp да ssh Изменено 13 сентября, 2009 пользователем 2c2i Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
2c2i Опубликовано 13 сентября, 2009 (изменено) · Жалоба у вас правильно шейпит при этом? 10.30.0.0/16 раскладываются по маске 0x000000ff в 256 классов если я не ошибаюсь. Буду на работе выложу свой конфиг сделайте чтоб net.netfilter.nf_conntrack_buckets было немного больше net.netfilter.nf_conntrack_count Изменено 13 сентября, 2009 пользователем 2c2i Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
SokolovS Опубликовано 13 сентября, 2009 · Жалоба taricУберите sfq и поставьте "на листах" pfifo. На сколько это повлияет не знаю, но pfifo определенно легче. И почему Вы решили, что на eth3 NAPI не работает? Вроде должен.... Замена sfq на pfifo сильно не повлияет, пробовал на 5к.А вот NAPI в драйвере tg3 действительно включен, по крайне мере у меня на этой версии работает: ethtool -i eth0 driver: tg3 version: 3.86 firmware-version: 5721-v3.58 bus-info: 0000:03:00.0 Я не писал что это влияет на шейпинг, скорее на максимально выжимаемую из интерфейса скорость.А что форвард уже в реалтайме без буферов выполняется? При роутинге как я понимаю задействуется L3 и те же самые буферы? Могу ошибаться, поправьте. То что буфер сетевух и наличие NAPI/poling влияет на максимльно выжимаемую скорость это точно, проверено многими в т.ч. и мной на практике, иначе CPU не по делу грузиться будет. tcp backlog всетаки не буфер сетевух, а tcp - это L4. Тюнинг tcp, как уже выше написали, повлияет только на соединения открываемые роутером/к роутеру, и обычно их очень мало - bgp да ssh Ну вобще я к конечно 2 параметра указывал и очередь по дефолту для netdev, а обычно рекомендуют их ставить согласованными, т.е. в одно значение. tcp буфер, да скорее всего на форвард не повлияет, тут был не прав, но ставить в одно значение все таки нужно. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 13 сентября, 2009 (изменено) · Жалоба $tc filter add dev imq0 protocol ip parent 12: prio 3 u32 match ip src 10.30.0.0/16 hashkey mask 0x0000ff00 at 12 link 3:$tc filter add dev imq0 protocol ip parent 12: prio 3 u32 match ip src 10.30.0.0/16 hashkey mask 0x000000ff at 12 link 4: Я хотел бы еще раз напомнить, что в ядрах начиная с 2.6.25 появился классификатор flow с более простым синтаксисом правил, позволяющий хэшировать сразу по 16 битам. http://www.mail-archive.com/netdev@vger.ke...g/msg60638.html Изменено 13 сентября, 2009 пользователем photon Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vitalyb Опубликовано 13 сентября, 2009 · Жалоба photon Поправьте если ошибаюсь, flow я не использовал, он просто "отображает" набор битов сразу в класс. Т.е. нельзля задать произвольное отображение как с помощью u32, в частности, например, нельзя трафик двух заданных произвольных IP адресов отправить в один класс (10.10.a.b и 10.10.c.d при /16, понятно, что 10.10.a.b и 10.20.a.b попадут в один). Если это так, то заменой u32 его считать нельзя. Это не делает классификатор плохим, он просто другой. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
_ruslan_ Опубликовано 13 сентября, 2009 · Жалоба Если карточки PCI-Express, то желательно заставить их работать через MSI, нужно проверить включена-ли в kernel'e его поддержка.Проверить flow-control - должен быть выключен. Попробовать использовать карточки поотдельности - может быть проблема в bond'e. И для высоких скоростей весьма желательно повысить Rx дескрипторы - можно даже до максимально возможных значений. Вывод top'a хотелось-бы увидеть, чтобы понять, что запущено и что кушает процессор. Каковы функции компьютера - сервер или роутер? Собрал я ядро с MSI. cat /proc/interrupts CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 0: 166 0 0 0 0 0 0 0 IO-APIC-edge timer 1: 0 0 0 0 0 0 0 0 IO-APIC-edge i8042 9: 0 0 0 0 0 0 0 0 IO-APIC-fasteoi acpi 16: 0 0 0 0 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb3 18: 0 0 0 0 0 0 0 0 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb8 19: 0 0 0 0 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb5, uhci_hcd:usb7 21: 0 0 0 0 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb4 23: 76 79 78 70 81 77 81 75 IO-APIC-fasteoi ehci_hcd:usb2, uhci_hcd:usb6 24: 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv 25: 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv 26: 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv 27: 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv 28: 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv 29: 0 0 0 0 0 0 0 0 PCI-MSI-edge aerdrv 33: 38238843 38278694 38210335 38265774 6483814 6433531 6477907 6483999 PCI-MSI-edge eth0 34: 9299323 9263342 9328108 9277013 80029549 80112398 80154473 80005064 PCI-MSI-edge eth1 NMI: 0 0 0 0 0 0 0 0 Non-maskable interrupts LOC: 9190782 9190372 9190972 9186836 9234314 9223137 9236628 9225914 Local timer interrupts SPU: 0 0 0 0 0 0 0 0 Spurious interrupts RES: 4629 4016 15478 4018 16164 11990 5232 13842 Rescheduling interrupts CAL: 2978 5480 5409 5506 5316 5347 5405 5222 Function call interrupts TLB: 128443 122016 538515 140306 673010 724586 343729 639522 TLB shootdowns TRM: 0 0 0 0 0 0 0 0 Thermal event interrupts ERR: 0 MIS: 0 Видно что стало с MSI. Субьективно стало лучше. Сейчас в среднем ~45kpps. Вроде все стабильно packet drop есть небольшой. bond0 Link encap:Ethernet HWaddr 00:18:71:EC:3B:40 inet addr:172.17.0.1 Bcast:172.17.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:1350220224 errors:0 dropped:168935 overruns:0 frame:67 TX packets:1298329121 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1498757459 (1.3 GiB) TX bytes:402783563 (384.1 MiB) eth0 Link encap:Ethernet HWaddr 00:18:71:EC:3B:40 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:974614697 errors:0 dropped:168935 overruns:0 frame:0 TX packets:653502892 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4160643509 (3.8 GiB) TX bytes:4002647367 (3.7 GiB) Memory:fcce0000-fcd00000 eth1 Link encap:Ethernet HWaddr 00:18:71:EC:3B:40 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:375605527 errors:0 dropped:0 overruns:0 frame:67 TX packets:644826229 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:5000 RX bytes:1633081246 (1.5 GiB) TX bytes:695103492 (662.9 MiB) Interrupt:17 eth0 - e1000e ethtool -g eth0 Ring parameters for eth0: Pre-set maximums: RX: 4096 RX Mini: 0 RX Jumbo: 0 TX: 4096 Current hardware settings: RX: 2048 RX Mini: 0 RX Jumbo: 0 TX: 2048 eth1 - tg3 Ring parameters for eth1: Pre-set maximums: RX: 511 RX Mini: 0 RX Jumbo: 0 TX: 511 Current hardware settings: RX: 511 RX Mini: 0 RX Jumbo: 0 TX: 511 vmstat 1 procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 2 0 0 3147100 1216 29360 0 0 0 1 62 34 2 17 82 0 1 0 0 3146348 1216 29360 0 0 0 0 15256 19245 7 22 71 0 3 0 0 3145760 1216 29360 0 0 0 0 15145 23729 7 22 71 0 3 0 0 3145000 1216 29360 0 0 0 0 13384 15484 5 22 73 0 2 0 0 3144364 1216 29360 0 0 0 11 12640 17377 5 21 74 0 1 0 0 3144232 1216 29364 0 0 0 0 13323 436 0 21 79 0 2 0 0 3144108 1216 29364 0 0 0 0 13119 287 0 19 81 0 1 0 0 3143860 1216 29364 0 0 0 0 13431 328 0 19 81 0 Иногда не надолго подскакиывает пинг до 30-50 мс на секунды 2-3. Что еще можете посоветовать?! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 13 сентября, 2009 (изменено) · Жалоба photonПоправьте если ошибаюсь, flow я не использовал, он просто "отображает" набор битов сразу в класс. Т.е. нельзля задать произвольное отображение как с помощью u32, в частности, например, нельзя трафик двух заданных произвольных IP адресов отправить в один класс (10.10.a.b и 10.10.c.d при /16, понятно, что 10.10.a.b и 10.20.a.b попадут в один). Если это так, то заменой u32 его считать нельзя. Это не делает классификатор плохим, он просто другой. Ну я и не говорю, что это полноценная замена u32. Это очевидно из структуры возможных хэшей:u32: любой dword => filter1 => ... => filterN => qdisc flow: <arg> => qdisc, где <arg> -- некие предопределенные поля, вроде IP-адресов и портов. Но судя по исходникам, там можно делать не только and 0xFFFF над аргументом, но и другие операции (or, xor, rshift, append). Для простых классификаций можно обойтись и этим. Изменено 13 сентября, 2009 пользователем photon Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
taric Опубликовано 14 сентября, 2009 (изменено) · Жалоба у вас правильно шейпит при этом?10.30.0.0/16 раскладываются по маске 0x000000ff в 256 классов если я не ошибаюсь. Буду на работе выложу свой конфиг Если можна, буду вам очень признателен. сделайте чтобnet.netfilter.nf_conntrack_buckets было немного больше net.netfilter.nf_conntrack_count # echo 65536 > /proc/sys/net/netfilter/nf_conntrack_buckets bash: /proc/sys/net/netfilter/nf_conntrack_buckets: Операция не позволяется # /sbin/sysctl -w net.netfilter.nf_conntrack_buckets=65536 error: "Operation not permitted" setting key "net.netfilter.nf_conntrack_buckets" Не хочет.... Изменено 14 сентября, 2009 пользователем taric Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
a0d75 Опубликовано 14 сентября, 2009 · Жалоба Хм, моя проблема решилась. После перезагрузки роутера ошибки на бродкомах пропали. Прерывания распределяет irqbalance, после перезагрузки у меня стало peer ~ # cat /proc/interrupts CPU0 CPU1 CPU2 CPU3 0: 450 409 0 0 IO-APIC-edge timer 1: 0 0 0 0 IO-APIC-edge i8042 2: 0 0 0 0 XT-PIC-XT cascade 8: 23 22 23 22 IO-APIC-edge rtc0 14: 0 0 0 0 IO-APIC-edge ata_piix 15: 0 0 0 0 IO-APIC-edge ata_piix 16: 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb4 18: 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb3 19: 366 365 306155 719452 IO-APIC-fasteoi ata_piix, uhci_hcd:usb2 23: 8 10 9 9 IO-APIC-fasteoi uhci_hcd:usb1 501: 119 130 3496557977 723291953 PCI-MSI-edge eth3 502: 291 17 581941850 3645091331 PCI-MSI-edge eth2 503: 232 27207 1357883760 1316655386 PCI-MSI-edge eth1 504: 92 84 1443060061 1154695024 PCI-MSI-edge eth0 NMI: 0 0 0 0 Non-maskable interrupts LOC: 16014165 3834410 18347372 17061618 Local timer interrupts RES: 302 351 1357 981 Rescheduling interrupts CAL: 16457 16500 16500 85 Function call interrupts TLB: 6530 4901 8076 15230 TLB shootdowns TRM: 0 0 0 0 Thermal event interrupts SPU: 0 0 0 0 Spurious interrupts ERR: 0 MIS: 0 peer ~ # cat /proc/irq/501/smp_affinity 08 peer ~ # cat /proc/irq/502/smp_affinity 04 peer ~ # cat /proc/irq/503/smp_affinity 08 peer ~ # cat /proc/irq/504/smp_affinity 04 Что было до перезагрузки не помню, но каждая сетевая сидела на своем процессоре. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
_ruslan_ Опубликовано 14 сентября, 2009 · Жалоба a0d75 то есть у тебя не было проблемы? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vitalyb Опубликовано 14 сентября, 2009 · Жалоба taric echo N > /sys/module/nf_conntrack/parameters/hashsize /proc/sys/net/netfilter/nf_conntrack_buckets, как не сложно посмотреть, read-only. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
2c2i Опубликовано 14 сентября, 2009 (изменено) · Жалоба только в 31 ядре появилась возможность на ходу менять, Для более ранних ядер при подгрузке модуля # cat /etc/modules e1000e nf_conntrack hashsize=1048576 ipt_NETFLOW destination=x.x.x.x:2055 хешфильтры. Я отделяю трафик к местной IX в отдельные классы и выдаю юзерам скорость на внешку + IX на повышенной function filters { UP_DEV=$1 DOWN_DEV=$2 tc filter add dev ${UP_DEV} parent 1:0 prio 1 protocol ip u32 tc filter add dev ${DOWN_DEV} parent 1:0 prio 1 protocol ip u32 tc qdisc add dev ${UP_DEV} ingress tc filter add dev ${UP_DEV} parent ffff: protocol ip prio 10 u32 match u32 0 0 flowid 1:${FI}01 action mirred egress redirect dev ${DOWN_DEV} tc filter add dev $UP_DEV protocol ip prio 5 u32 ht 800:: match ip src 192.168.0.0/16 classid 1:${FI}10 ## some local trafic tc filter add dev $UP_DEV protocol ip prio 5 u32 ht 800:: match ip dst 10.0.0.0/8 classid 1:${FI}10 tc filter add dev $UP_DEV protocol ip prio 5 u32 ht 800:: match ip dst 172.16.100.0/22 classid 1:${FI}13 ## p2p tc filter add dev $UP_DEV protocol ip prio 5 u32 ht 800:: match ip dst 192.168.0.0/16 classid 1:${FI}10 tc filter add dev $UP_DEV protocol ip prio 5 u32 ht 800:: match ip src 10.0.0.0/8 classid 1:${FI}10 #####???##### tc filter add dev $DOWN_DEV protocol ip prio 5 u32 ht 800:: match ip src 172.16.100.0/22 classid 1:${FI}13 tc filter add dev ${UP_DEV} protocol ip prio 5 parent 1: handle 4: u32 divisor 1 tc filter add dev ${UP_DEV} protocol ip prio 5 parent 1: handle 5: u32 divisor 1 tc filter add dev ${DOWN_DEV} protocol ip prio 5 parent 1: handle 4: u32 divisor 1 tc filter add dev ${DOWN_DEV} protocol ip prio 5 parent 1: handle 5: u32 divisor 1 ############ IX ENABLED for net in `cat /etc/ppp/ix.lst` do tc filter add dev $UP_DEV protocol ip prio 5 u32 ht 800:: match ip dst ${net} link 4: tc filter add dev $DOWN_DEV protocol ip prio 5 u32 ht 800:: match ip src ${net} link 4: done tc filter add dev $UP_DEV protocol ip prio 5 u32 ht 800:: match ip src 0.0.0.0/0 link 5: tc filter add dev $DOWN_DEV protocol ip prio 5 u32 ht 800:: match ip dst 0.0.0.0/0 link 5: } function hashfilters { DEV=$1 DIRECTION=$2 HT=$3 ## HEX!!! STARTCLASSPREFIX=$4 ## HEX!!! STARTHTPREFIX=$5 if [ "$DIRECTION" = "src" ] then OFFSET=12 else OFFSET=16 fi echo "$DIRECTION - $OFFSET" tc filter add dev ${DEV} parent 1: prio 5 handle $(($STARTHTPREFIX)): protocol ip u32 divisor 256 tc filter add dev ${DEV} protocol ip parent 1: prio 5 u32 ht $HT:: match ip ${DIRECTION} 0.0.0.0/0 hashkey mask 0x0000ff00 at ${OFFSET} link $(($STARTHTPREFIX)): tc filter add dev ${DEV} parent 1: prio 5 handle $(($STARTHTPREFIX+1)): protocol ip u32 divisor 256 tc filter add dev ${DEV} protocol ip parent 1: prio 5 u32 ht $(($STARTHTPREFIX)):64: match ip ${DIRECTION} 0.0.0.0/0 hashkey mask 0xff at ${OFFSET} link $(($STARTHTPREFIX+1)): for class in `seq 1 255` do tc filter add dev ${DEV} protocol ip parent 1: prio 5 u32 ht $(($STARTHTPREFIX+1)):`printf %x $class`: match ip ${DIRECTION} 0.0.0.0/0 classid 1:${STARTCLASSPREFIX}`printf %x $class` done # entries for 172.16.101.0/24 tc filter add dev ${DEV} parent 1: prio 5 handle $(($STARTHTPREFIX+2)): protocol ip u32 divisor 256 tc filter add dev ${DEV} protocol ip parent 1: prio 5 u32 ht $(($STARTHTPREFIX)):65: match ip ${DIRECTION} 0.0.0.0/0 hashkey mask 0xff at ${OFFSET} link $(($STARTHTPREFIX+2)): for class in `seq 1 255` do tc filter add dev ${DEV} protocol ip parent 1: prio 5 u32 ht $(($STARTHTPREFIX+2)):`printf %x $class`: match ip ${DIRECTION} 0.0.0.0/0 classid 1:$((${STARTCLASSPREFIX}+1))`printf %x $class` done # entries for 172.16.102.0/24 tc filter add dev ${DEV} parent 1: prio 5 handle $(($STARTHTPREFIX+3)): protocol ip u32 divisor 256 tc filter add dev ${DEV} protocol ip parent 1: prio 5 u32 ht $(($STARTHTPREFIX)):66: match ip ${DIRECTION} 0.0.0.0/0 hashkey mask 0xff at ${OFFSET} link $(($STARTHTPREFIX+3)): for class in `seq 1 255` do tc filter add dev ${DEV} protocol ip parent 1: prio 5 u32 ht $(($STARTHTPREFIX+3)):`printf %x $class`: match ip ${DIRECTION} 0.0.0.0/0 classid 1:$((${STARTCLASSPREFIX}+2))`printf %x $class` done ## entries for 172.16.103.0/24 tc filter add dev ${DEV} parent 1: prio 5 handle $(($STARTHTPREFIX+4)): protocol ip u32 divisor 256 tc filter add dev ${DEV} protocol ip parent 1: prio 5 u32 ht $(($STARTHTPREFIX)):67: match ip ${DIRECTION} 0.0.0.0/0 hashkey mask 0xff at ${OFFSET} link $(($STARTHTPREFIX+4)): for class in `seq 1 255` do tc filter add dev ${DEV} protocol ip parent 1: prio 5 u32 ht $(($STARTHTPREFIX+4)):`printf %x $class`: match ip ${DIRECTION} 0.0.0.0/0 classid 1:$((${STARTCLASSPREFIX}+3))`printf %x $class` done ## entries for 172.16.200.0/24 tc filter add dev ${DEV} parent 1: prio 5 handle $((${STARTHTPREFIX}+5)): protocol ip u32 divisor 256 tc filter add dev ${DEV} protocol ip parent 1: prio 5 u32 ht $((${STARTHTPREFIX})):c8: match ip ${DIRECTION} 0.0.0.0/0 hashkey mask 0xff at ${OFFSET} link $((${STARTHTPREFIX}+5)): for class in `seq 1 255` do tc filter add dev ${DEV} protocol ip parent 1: prio 5 u32 ht $(($STARTHTPREFIX+5)):`printf %x $class`: match ip ${DIRECTION} 0.0.0.0/0 classid 1:$((${STARTCLASSPREFIX}+5))`printf %x $class` done ip link set ifb0 up ip link set eth0 up erase_classes eth0 erase_classes ifb0 create_classes eth0 create_classes ifb0 filters eth0 ifb0 hashfilters eth0 src 4 70 30 ## traf to IX hashfilters eth0 src 5 64 10 ## traf to WORLD hashfilters ifb0 dst 4 70 30 ## traf from IX hashfilters ifb0 dst 5 64 10 ## traf from WORLD Вобщем то правильнее и для отделения трафика в IX делать хеш фильтр, Но пока что там сетей немного и я их просто просуммировал. Изменено 14 сентября, 2009 пользователем 2c2i Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
DemYaN Опубликовано 14 сентября, 2009 (изменено) · Жалоба только в 31 ядре появилась возможность находу менять, Для более ранних ядер при подгрузке модуля # cat /etc/modules e1000e nf_conntrack hashsize=1048576 ipt_NETFLOW destination=x.x.x.x:2055 echo 524288 > /sys/module/nf_conntrack/parameters/hashsize echo 524288 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max # uname -r 2.6.26-1-686 Изменено 14 сентября, 2009 пользователем DemYaN Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
2c2i Опубликовано 14 сентября, 2009 (изменено) · Жалоба у меня не получалось так :-) Это где то можно включить? Изменено 14 сентября, 2009 пользователем 2c2i Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vitalyb Опубликовано 14 сентября, 2009 · Жалоба 2c2i Аналогично, работает и с более ранними ядрами, никаких манипуляций не делал дополнительных... nf_conntrack_core.c вроде никаких настроек в этом плане и не предусматривает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...