Перейти к содержимому
Калькуляторы

Iva

Пользователи
  • Публикации

    28
  • Зарегистрирован

  • Посещение

Все публикации пользователя Iva


  1. Поставили расчёт burst и cburst как и для quantum (в зависимости от ceil). Количество int уменьшилось практически до значений по-умолчанию в драйвере ixgbe. Количество csw уменьшилось в 2 раза. Загрузка CPU и процент _spin_lock в perf top практически не изменились. Посмотрим, поможет ли это достигнуть хотя бы 2.6 Гиг.
  2. Нет, шины хватает: >dmesg | grep Express: ixgbe: eth0: ixgbe_probe: (PCI Express:2.5Gb/s:Width x8) 00:30:48:94:61:54 ixgbe: eth1: ixgbe_probe: (PCI Express:2.5Gb/s:Width x8) 00:30:48:94:61:55
  3. А получалось ли разогнать HTB хотя бы до 3 гиг?
  4. Это порог? Или это просто текущее значение и возможен рост? Похоже порог. При 4.5 Гиг ожидаемого трафика, HTB упирался в 2.5 и даже плавно падал при увеличении объема подаваемого трафика. Процы, при этом, были загружены всего на 40%.
  5. Для 2 Гиг хватит и двух Xeon E5520. На 10Г картах выжимаем из HTB-шейпера 2.5 Гига.
  6. У нас quantum для каждого класса рассчитывается из расчёта 1/10 от ceil, но не меньше 10000. И всё равно это не помогает преодолеть 2.5 Гига. Всё упирается в _spin_lock. Интересно, хоть кто-нибудь смог на HTB и MTU в 1500 вытянуть больше 2.5 Gbps?
  7. А вы попробуйте выжать из HTB больше 2.5 Гиг.
  8. Хешированные фильтры помогают как раз до этих пределов, потом начинается падение скорости и абоненты его чётко чувствуют. Сама архитектура HTB не подходит для эффективного распараллеливания. А 24 ядра, так это на оба порта (16 и 8) и 275 Kpps это всего лишь одно направление на одном интерфейсе. Карты загружены неравноморено (вход/исход) и такое распределение ядер по очередям подобрано опытным путём для оптимальной загрузки. Генерация флова присутствует, как и аккаунтинг, но они "бесплатные" в связках ipset+ulog+ipcad+ipt_account. JMan, загружен ли на таком трафике и конфигурации модуль nf_nat и вообще хотелось бы больше технических подробностей (sysctl/lsmod/cat /proc/interrupts и т.п.). Хм, раньше такого не замечали, а на какой серии intel проверяли?
  9. На конфигурации Dual Xeon CPU X5650 + Dual Port 10G Ethernet 82598EB удалось достичь 800 Kpps (3/3.5 Gbps вход/исход) NAT+Forwarding-трафика (без BGP) при 50-60% загрузке всех 24 ядер. После этой границы загрузка процессоров нелинейно возрастала до 100%. В случае использования HTB-шейпера, при исходящем трафике больше ~275 Kpps (~2.3 Gbps) наблюдалось падение его скорости на разницу превышения входящим трафиком 250 Kpps (~2 Gbps). Однако, это всё оказалось не столь важно, начиная с ядер 2.6.28-f11 и вплоть до 2.6.32-el6 использовать NAT на скоростях больше 1 Gbps практически не было возможности, ошибка в модуле nf_nat валит ядро до двух раз в сутки. Более того, ни одного правила в таблице NAT может и не быть, достаточно загруженного модуля nf_nat даже без iptable_nat.
  10. Вопрос: а можно ли вообще этот модуль вставлять в это шасси?
  11. IP TV - дополнительные инвестиции

    Делаете врезку по временным или другим предназначенным для этого меткам, технология существует давно.
  12. Именно так тролли и поступают, им абсолютно наплевать на правила форума, они сразу дают понять, что тема обсуждения им побоку, а их задача своими вопросами свести всё к "срачу". Просьба к модератору, разделить topic и вырезать последние две страницы offtopа. Тема была многим полезна.
  13. А вот ещё одно последствие uTP: Начиная с момента выхода бета-версий клиента с новым протоколом, количество неагрегируемых netflow сессий стремительно растёт, соответственно пухнет и размер таблиц в базах. Планировали, что RAID-массива хватит до конца года, а сейчас, даже после срочного изменения структуры таблиц и сокращения размера базы в 2 раза, не уверены хватит ли места на дисках до лета.
  14. Есть: *nat :POSTROUTING ACCEPT [0:0] [0:0] -A POSTROUTING -o eth0 -s 10.0.0.0/8 -j SNAT --to-source x.y.z.1-x.y.z.254 --persistent COMMIT
  15. >grep IMQ /boot/config-2.6.30.9-102.fc11.1.iva.i686.PAE CONFIG_NETFILTER_XT_TARGET_IMQ=m CONFIG_IMQ=m # CONFIG_IMQ_BEHAVIOR_AA is not set CONFIG_IMQ_BEHAVIOR_AB=y # CONFIG_IMQ_BEHAVIOR_BA is not set # CONFIG_IMQ_BEHAVIOR_BB is not set CONFIG_IMQ_NUM_DEVS=2
  16. Покажи как поднимаешь сам IMQ-интерфейс и перенаправляешь в него трафик в IPTables.
  17. Патчи и spec-файлы для kernel (добавлены ACCOUNT, IMQ, IPSet; исправлены nf_nat, xt_connlimit, pkt_sched), iptables (добавлены ACCOUNT, IMQ, IPSet) и iproute (исправлен tc_core) из Fedora 11. kernel.tar.gz iptables.tar.gz iproute.tar.gz
  18. 1. Равномерно. >cat /proc/interrupts | grep eth1- 39: 1 0 0 0 1726006 0 0 0 0 0 0 0 0 0 0 0 PCI-MSI-edge eth1-tx-0 40: 1 0 0 0 0 1182562228 0 0 0 0 0 0 0 0 0 0 PCI-MSI-edge eth1-tx-1 41: 1 0 0 0 0 0 1608544 0 0 0 0 0 0 0 0 0 PCI-MSI-edge eth1-tx-2 42: 1 0 0 0 0 0 0 12272817 0 0 0 0 0 0 0 0 PCI-MSI-edge eth1-tx-3 43: 28 0 0 0 3322815218 0 0 0 0 0 0 0 0 0 0 0 PCI-MSI-edge eth1-rx-0 44: 28 0 0 0 0 3296269300 0 0 0 0 0 0 0 0 0 0 PCI-MSI-edge eth1-rx-1 45: 28 0 0 0 0 0 3453214061 0 0 0 0 0 0 0 0 0 PCI-MSI-edge eth1-rx-2 46: 28 0 0 0 0 0 0 3538887856 0 0 0 0 0 0 0 0 PCI-MSI-edge eth1-rx-3 >ethtool -S eth1 | grep queue tx_restart_queue: 160 tx_queue_0_packets: 2272100 tx_queue_0_bytes: 1076187983 tx_queue_1_packets: 129933060036 tx_queue_1_bytes: 126776763655694 tx_queue_2_packets: 2273234 tx_queue_2_bytes: 1321075252 tx_queue_3_packets: 28824675 tx_queue_3_bytes: 38374394282 rx_queue_0_packets: 26822352467 rx_queue_0_bytes: 16024328774328 rx_queue_1_packets: 26955108335 rx_queue_1_bytes: 15936905403561 rx_queue_2_packets: 26967956652 rx_queue_2_bytes: 15845185234217 rx_queue_3_packets: 27437601610 rx_queue_3_bytes: 16519307617664 2. С IPTables проблем нет. Для HTB рекомендуют отключать TCP Segmentation Offload, чтобы точность шейпера не падала. >ethtool -K eth0 tso off
  19. Это TARGET-модуль IPTables для IMQ-устройства. Например, как в вышеприведенном примере.
  20. Извиняюсь, думал вопрос был адресован автору статьи. Дропов нет смысла допускать. Достаточно проследить за параметрами статистики интерфейса и в случае ошибок (rx_no_buffer_count, rx_missed_errors) увеличить Ring parameters: >ethtool -S eth0 NIC statistics: rx_packets: 62073338124 tx_packets: 51327408018 rx_bytes: 64654913689424 tx_bytes: 31039760607836 rx_broadcast: 3587538 tx_broadcast: 3767 rx_multicast: 3 tx_multicast: 4 rx_errors: 36 tx_errors: 0 tx_dropped: 0 multicast: 3 collisions: 0 rx_length_errors: 0 rx_over_errors: 0 rx_crc_errors: 22 rx_frame_errors: 0 rx_no_buffer_count: 187 rx_missed_errors: 81 tx_aborted_errors: 0 tx_carrier_errors: 0 tx_fifo_errors: 0 tx_heartbeat_errors: 0 tx_window_errors: 0 tx_abort_late_coll: 0 tx_deferred_ok: 0 tx_single_coll_ok: 0 tx_multi_coll_ok: 0 tx_timeout_count: 0 tx_restart_queue: 0 rx_long_length_errors: 0 rx_short_length_errors: 0 rx_align_errors: 0 tx_tcp_seg_good: 3519052 tx_tcp_seg_failed: 0 rx_flow_control_xon: 0 rx_flow_control_xoff: 0 tx_flow_control_xon: 0 tx_flow_control_xoff: 0 rx_long_byte_count: 64654913689424 rx_csum_offload_good: 62019195396 rx_csum_offload_errors: 876202 tx_dma_out_of_sync: 0 alloc_rx_buff_failed: 0 tx_smbus: 0 rx_smbus: 0 dropped_smbus: 0 tx_queue_0_packets: 51311490384 tx_queue_0_bytes: 30693986683670 tx_queue_1_packets: 1931574 tx_queue_1_bytes: 630914901 tx_queue_2_packets: 1722205 tx_queue_2_bytes: 556098712 tx_queue_3_packets: 12263850 tx_queue_3_bytes: 15387016988 rx_queue_0_packets: 15417127940 rx_queue_0_bytes: 15954925692220 rx_queue_1_packets: 15552881003 rx_queue_1_bytes: 16172568075893 rx_queue_2_packets: 15456729503 rx_queue_2_bytes: 15892001474168 rx_queue_3_packets: 15646599679 rx_queue_3_bytes: 16387162976168 >ethtool -g eth0 Ring parameters for eth0: Pre-set maximums: RX: 4096 RX Mini: 0 RX Jumbo: 0 TX: 4096 Current hardware settings: RX: 1024 RX Mini: 0 RX Jumbo: 0 TX: 256 Из маршрутов, только дефолт в "реальный" интерфейс и 10.0.0.0/8 в "локальный". Дополнительно увеличены кешы: >grep "ipv4.route" /etc/sysctl.conf net.ipv4.route.max_size = 4194304 net.ipv4.route.secret_interval = 300 IPTables максимально оптимизирован для уменьшения времени прохождения пакета по правилам. Для массовых однотипных проверок используется IPSet, для учёта трафика используется ipt_ACCOUNT, для netflow ipt_ULOG+IPCad. >ipset -L | grep "\." | wc -l 11142 >cat /etc/sysconfig/iptables *mangle :PREROUTING ACCEPT [0:0] :FORWARD ACCEPT [0:0] # # Shaper marking # # # host -> ua # [0:0] -A PREROUTING -i eth1 -m set --set ua dst -m comment --comment "UA Out" -j MARK --set-mark 201 [0:0] -A PREROUTING -m mark --mark 201 -j IMQ --todev 0 [0:0] -A PREROUTING -m mark --mark 201 -j RETURN # # host -> world # [0:0] -A PREROUTING -i eth1 -m comment --comment "World Out" -j MARK --set-mark 202 [0:0] -A PREROUTING -m mark --mark 202 -j IMQ --todev 0 # # Billing marking # # # ua -> host # [0:0] -A FORWARD -i eth0 -m set --set ua src -m comment --comment "UA In" -j MARK --set-mark 11 [0:0] -A FORWARD -m mark --mark 11 -j RETURN # # host -> ua # [0:0] -A FORWARD -m mark --mark 201 -j MARK --set-mark 12 [0:0] -A FORWARD -m mark --mark 12 -j RETURN # # world -> host # [0:0] -A FORWARD -i eth0 -m comment --comment "World In" -j MARK --set-mark 1 [0:0] -A FORWARD -m mark --mark 1 -j RETURN # # host -> world # [0:0] -A FORWARD -m mark --mark 202 -j MARK --set-mark 2 COMMIT *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] # # Billing redir # [0:0] -N redir [0:0] -A redir -m set --set bil_10_4 src -j RETURN [0:0] -A redir -m set --set bil_10_5 src -j RETURN [0:0] -A redir -m set --set bil_10_1 src -j RETURN [0:0] -A redir -j REDIRECT # # Billing redirecting # [0:0] -A PREROUTING -i eth1 -p tcp --dport 80 -j redir [0:0] -A PREROUTING -m mark --mark 201 -m set --set block-1-host-ua src -p tcp --dport 80 -j REDIRECT [0:0] -A PREROUTING -m mark --mark 202 -m set --set block-1-host-world src -p tcp --dport 80 -j REDIRECT # # Billing nating # [0:0] -A POSTROUTING -o eth0 -s 10.0.0.0/8 -p icmp -j SNAT --to-source x.x.x.x [0:0] -A POSTROUTING -o eth0 -s 10.0.0.0/8 -j SNAT --to-source y.y.y.1-y.y.y.254 --persistent COMMIT *filter :FORWARD ACCEPT [0:0] # # Billing access # [0:0] -N access [0:0] -A access -m set --set bil_10_4 src -j RETURN [0:0] -A access -m set --set bil_10_5 src -j RETURN [0:0] -A access -m set --set bil_10_1 src -j RETURN [0:0] -A access -j REJECT --reject-with icmp-admin-prohibited # # Billing accounting # # # ua -> host # [0:0] -N ua_host [0:0] -A ua_host -m set --set block-1-ua-host dst -j DROP [0:0] -A ua_host -j ACCOUNT --addr 10.0.0.0/8 --tname ua-host [0:0] -A ua_host -j ACCEPT [0:0] -A FORWARD -m mark --mark 11 -j ua_host # # host -> ua # [0:0] -N host_ua [0:0] -A host_ua -j access [0:0] -A host_ua -m set --set block-1-host-ua src -j REJECT --reject-with icmp-admin-prohibited [0:0] -A host_ua -p tcp --syn --dport 1025: -m connlimit --connlimit-above 255 -j REJECT --reject-with tcp-reset [0:0] -A host_ua -j ACCOUNT --addr 10.0.0.0/8 --tname host-ua [0:0] -A host_ua -j ACCEPT [0:0] -A FORWARD -m mark --mark 12 -j host_ua # # world -> host # [0:0] -N world_host [0:0] -A world_host -m set --set block-1-world-host dst -j DROP [0:0] -A world_host -j ACCOUNT --addr 10.0.0.0/8 --tname world-host [0:0] -A world_host -m set --set ulog-world-host dst -j ULOG --ulog-nlgroup 3 --ulog-cprange 48 --ulog-qthreshold 10 [0:0] -A world_host -j ACCEPT [0:0] -A FORWARD -m mark --mark 1 -j world_host # # host -> world # [0:0] -N host_world [0:0] -A host_world -j access [0:0] -A host_world -m set --set block-1-host-world src -j REJECT --reject-with icmp-admin-prohibited [0:0] -A host_world -p tcp --syn --dport 1025: -m connlimit --connlimit-above 255 -j REJECT --reject-with tcp-reset [0:0] -A host_world -j ACCOUNT --addr 10.0.0.0/8 --tname host-world [0:0] -A host_world -m set --set ulog-host-world src -j ULOG --ulog-nlgroup 2 --ulog-cprange 48 --ulog-qthreshold 10 [0:0] -A FORWARD -m mark --mark 2 -j host_world COMMIT
  21. Хм, скорее это у вас аномально низкий средний размер пакета. Например, у нас меньше 1000 байт практически не опускается.
  22. С простыми, не-vlan интерфейсами всё замечательно работает: >uname -rms Linux 2.6.30.9-96.fc11.2.iva.i686.PAE i686 >lsmod | grep -i imq imq 4768 428 xt_IMQ 1552 2 >iptables -t mangle -nvxL PREROUTING Chain PREROUTING (policy ACCEPT 114811103366 packets, 108555888264746 bytes) pkts bytes target prot opt in out source destination 34547502076 23500816073489 MARK all -- eth1 * 0.0.0.0/0 0.0.0.0/0 match-set ua dst /* UA Out */ MARK xset 0xc9/0xffffffff 34547502076 23500816073489 IMQ all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0xc9 IMQ: todev 0 34547502076 23500816073489 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0xc9 23438007475 15606338680336 MARK all -- eth1 * 0.0.0.0/0 0.0.0.0/0 /* World Out */ MARK xset 0xca/0xffffffff 23438007475 15606338680336 IMQ all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0xca IMQ: todev 0 >ifconfig imq0 imq0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 UP RUNNING NOARP MTU:16000 Metric:1 RX packets:889360036 errors:0 dropped:0 overruns:0 frame:0 TX packets:771415405 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:11000