Ilya Evseev Опубликовано 11 апреля, 2011 · Жалоба Еще лучше не копировать трафик с помощью ng_tee, а сделать как показано на схеме 7 В теории верно, на практике оказалось наоборот: при переходе от "ipfw netgraph" к "ipfw ngtee" производительность выросла, загрузка из swi1 и ng_queue ушла в прерывание сетевой карты. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Zohan Опубликовано 12 апреля, 2011 · Жалоба ipfw add pipe tablearg ip from any to table(1) in ipfw add pipe tablearg ip from table(2) to any out ipfw pipe 1000 config bw 512Kbit/s mask dst-ip 0xffffffff ipfw pipe 1001 config bw 512Kbit/s mask src-ip 0xffffffff ipfw table 1 add 175.2.2.1 1000 ipfw table 2 add 175.2.2.1 1001 А как теперь сюда приделать очереди для приоретизации http, icmp? :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ilya Evseev Опубликовано 12 апреля, 2011 · Жалоба А как теперь сюда приделать очереди для приоретизации http, icmp? :) У меня NAT делается в pf, поэтому приоритезацию я поместил туда же. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Zaqwr Опубликовано 12 апреля, 2011 · Жалоба iptables с блеском решает такие задачи, зачем пробовать что-то портированое не понимаю... Когда идёте по ссылке, не ограничивайтесь прочтением заголовка. Там сравниваются не только nat, но и шейперы. iptables решает задачу шейпирования? с блеском? :) iptables+tc естественно Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Zohan Опубликовано 18 апреля, 2011 (изменено) · Жалоба Если сделать по схеме: 2 правила с tablearg и на каждого абонента по 2 трубы, это ведь уже не 1000 правил, а от количества труб нагрузка не должна зависеть, по крайней мере не в линейной зависимости, это ведь уже должно дать эффект? Ведь в чем разницы между динамическими и статическими трубами? Изменено 18 апреля, 2011 пользователем Zohan Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
photon Опубликовано 18 апреля, 2011 (изменено) · Жалоба В случае с tablearg хэш вида IP => "pipe number" создается вручную. Разница в том, что с динамическими пайпами не нужно создавать кучу правил с описанием каждого pipe в отдельности. Но при этом можно сделать только по одному IP на pipe. Для tablearg есть возможность классифицировать трафик от нескольких IP в один pipe. Изменено 18 апреля, 2011 пользователем photon Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dimka88 Опубликовано 2 марта, 2012 (изменено) · Жалоба Столкнулся с проблемой ipfw. Растёт нагрузка Tasks: 135 total, 1 running, 134 sleeping, 0 stopped, 0 zombie Cpu0 : 0.0%us, 0.0%sy, 0.0%ni, 89.2%id, 0.0%wa, 6.6%hi, 4.2%si, 0.0%st Cpu1 : 0.0%us, 0.0%sy, 0.0%ni, 99.0%id, 0.0%wa, 0.7%hi, 0.3%si, 0.0%st Cpu2 : 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu3 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu4 : 0.0%us, 1.0%sy, 0.0%ni, 66.1%id, 0.0%wa, 1.7%hi, 31.2%si, 0.0%st Cpu5 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu6 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Cpu7 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 3104792k total, 422192k used, 2682600k free, 79952k buffers Swap: 4031480k total, 0k used, 4031480k free, 257972k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 16 root 20 0 0 0 0 S 24 0.0 11:05.02 ksoftirqd/4 Характеристики intel® Core i7 CPU 920 @ 2.67GHz 03:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01) 03:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01) в бондинге Тюнинг ipfw echo "8192" > /sys/module/ipfw_mod/parameters/hash_size echo "8192" > /sys/module/ipfw_mod/parameters/dyn_buckets echo "8192" > /sys/module/ipfw_mod/parameters/dyn_max echo "10" > /sys/module/ipfw_mod/parameters/autoinc_step echo "1" > /sys/module/ipfw_mod/parameters/io_fast Правила задаются так /usr/local/sbin/ipfw pipe 11000 config mask src-ip 0xffffffff bw 10Mbits queue 100 noerror /usr/local/sbin/ipfw pipe 11001 config mask dst-ip 0xffffffff bw 10Mbits queue 100 noerror /usr/local/sbin/ipfw pipe 15240 config mask src-ip 0xffffffff bw 20Mbits queue 100 noerror /usr/local/sbin/ipfw pipe 15241 config mask dst-ip 0xffffffff bw 20Mbits queue 100 noerror /usr/local/sbin/ipfw pipe 20480 config mask src-ip 0xffffffff bw 30Mbits queue 100 noerror /usr/local/sbin/ipfw pipe 20481 config mask dst-ip 0xffffffff bw 30Mbits queue 100 noerror /usr/local/sbin/ipfw pipe 26000 config mask src-ip 0xffffffff bw 50Mbits queue 100 noerror /usr/local/sbin/ipfw pipe 26001 config mask dst-ip 0xffffffff bw 50Mbits queue 100 noerror /usr/local/sbin/ipfw add pipe tablearg ip from "table(1)" to any out via bond0 /usr/local/sbin/ipfw add pipe tablearg ip from any to "table(2)" in via bond0 /usr/local/sbin/ipfw add 10002 allow all from any to any via bond0 В таблицу вношу так /usr/local/sbin/ipfw table 1 add $IPADDR $PIPE_OUT /usr/local/sbin/ipfw table 2 add $IPADDR $PIPE_IN Наблюдаю kernel panic фото Ядро собрано с параметром hz=1000 Подскажите, как исправить. Изменено 2 марта, 2012 пользователем Dimka88 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Zohan Опубликовано 2 марта, 2012 · Жалоба Dimka88 uname -a и обновите ipfw/dummynet до последней версии. Также драйвера сетевых карт. И после чего появились паники? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dimka88 Опубликовано 3 марта, 2012 (изменено) · Жалоба Zohan, root@pppd:~# uname -a Linux pppd 2.6.32.5-pppd #1 SMP Wed Feb 29 12:57:15 EET 2012 i686 GNU/Linux dummynet взял у марты link. Версия ipfw3-20110810. На ipfw3-20120119 при параметре io_fast 1 шейпер не срабатывал, вернее с таблиц не пападало в пайпы. Затык может быть в драйверах? С htb паники не было на тех же драйверах. И еще есть пару серверов с той же конфигурацией и с той же версией igb кушают 2Gbps драйвера root@pppd:~# modinfo ig filename: /lib/modules/2.6.32.5-pppd/kernel/drivers/net/igb/igb.ko version: 2.1.9 Подгружаю модуль и задаю сетевые параметры так rmmod igb modprobe igb RSS=8,8,8,8 modprobe bonding miimon=100 ifconfig eth1 up ifconfig eth1 txqueuelen 10000 ifconfig eth2 up ifconfig eth2 txqueuelen 10000 ifconfig bond0 up ifenslave bond0 eth1 eth2 ifconfig bond0 10.0.1.1 netmask 255.255.255.0 route add default gw 10.0.1.254 /sbin/ethtool -K eth1 tx off rx off sg off gro off gso off /sbin/ethtool -K eth2 tx off rx off sg off gro off gso off В скором времени после надписи в dmessege CA: hpet increasing min_delta_ns to 15000 nsec Потом паника, фото паники постом выше Прерывания на карте задаю так /bin/echo 1 > /proc/irq/54/smp_affinity /bin/echo 2 > /proc/irq/55/smp_affinity /bin/echo 4 > /proc/irq/56/smp_affinity /bin/echo 8 > /proc/irq/57/smp_affinity /bin/echo 10 > /proc/irq/58/smp_affinity /bin/echo 20 > /proc/irq/59/smp_affinity /bin/echo 40 > /proc/irq/60/smp_affinity /bin/echo 80 > /proc/irq/61/smp_affinity /bin/echo 1 > /proc/irq/65/smp_affinity /bin/echo 2 > /proc/irq/66/smp_affinity /bin/echo 4 > /proc/irq/67/smp_affinity /bin/echo 8 > /proc/irq/68/smp_affinity /bin/echo 10 > /proc/irq/69/smp_affinity /bin/echo 20 > /proc/irq/70/smp_affinity /bin/echo 40 > /proc/irq/71/smp_affinity /bin/echo 80 > /proc/irq/72/smp_affinity Заметил что на 4ом ядре при увеличении нагрузки в /proc/interrupts динамически рос показатель Local timer interrupts Смутило и ethtool -g eth1\2 "TX\RX:256", хотя на других серверах также Ring parameters for eth1\2: Pre-set maximums: RX: 4096 RX Mini: 0 RX Jumbo: 0 TX: 4096 Current hardware settings: RX: 256 RX Mini: 0 RX Jumbo: 0 TX: 256 Изменено 3 марта, 2012 пользователем Dimka88 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Zohan Опубликовано 3 марта, 2012 · Жалоба Zohan, root@pppd:~# uname -a Linux pppd 2.6.32.5-pppd #1 SMP Wed Feb 29 12:57:15 EET 2012 i686 GNU/Linux И еще есть пару серверов с той же конфигурацией и с той же версией igb кушают 2Gbps Тоже с ipfw/dummynet и там все нормально? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Dimka88 Опубликовано 3 марта, 2012 (изменено) · Жалоба Zohan, там используется tc. Каким образом можно синтетически вызвать нагрузку на dummynet, что бы постоянно не дергать туда клиентов? По поводу Local timer interrupts после рестарта ipfw/dummynet выбрал 7-е ядро CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 LOC: 34618 1562926 19061 1049892 98077 11192 120428 3625346 Local timer interrupts Изменено 3 марта, 2012 пользователем Dimka88 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...