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

mirk

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

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

  • Посещение

О mirk

  • Звание
    Абитуриент
    Абитуриент

Контакты

  • ICQ
    Array

Посетители профиля

1696 просмотров профиля
  1. Здравствуйте. Build: Mar 27 2018 20:39:59 Сначала завис May 27 17:35:29 iptv-proxy kernel: [2097742.146142] msd_lite[546]: segfault at 0 ip 000055f356b1fd03 sp 00007f76b567fce0 error 6 in msd_lite[55f356b18000+20000] Перезагрузили сервер (не стартануло) May 27 18:35:32 iptv-proxy rc.local[488]: Starting ares encryption agent daemon:Starting ares probe agent daemon:rm: cannot remove '/tmp/msd-*': No such file or directory May 27 18:35:33 iptv-proxy kernel: [ 17.722231] warning: process `msd_lite' used the deprecated sysctl system call with May 27 18:35:33 iptv-proxy kernel: [ 17.722262] warning: process `msd_lite' used the deprecated sysctl system call with May 27 18:35:33 iptv-proxy kernel: [ 17.942738] msd_lite[531]: segfault at 10 ip 000055c0a9456434 sp 00007f193bbcd880 error 4 in msd_lite[55c0a944f000+20000] Запустили вручную - заработало. Что могут значить error 6 и error 4? Спасибо.
  2. Провел тесты без бондинга, с одной картой. Прерывания раскиданы на оба процессора. Загрузка ЦП в целом упала на 5-7%, Распределение нагрузки по ядрам стало ещё более равномерным. Но проблема осталась. Хотя удалось кое что выяснить. Проблемы начинаются когда загрузка ЦП начинает превышать 35-40% При такой нагрузке я пробовал переносить все прерывания на 1 процессор чтобы посмотреть что произойдёт. Естественно его загрузка практически удваивалась. В результате все работало ещё хуже, хотя трафик был таким же. Из этого следует что проблемы зависят от загрузки ЦП, а не от трафика или числа сессий. По поводу графиков conntrack, снизил значения тайм аутов time_wait и syn_sent со 120 до 30 График стал похож на нормальный, как на боевых серверах. Странно, на старых системах стоит 120 и всё работает без корректировок
  3. Нет обе карты на слотах CPU1 в материнке. Сегодня попробую убрать бондинг. Реально трафика больше 10G и он каждый месяц растёт. Просто в тестах не стали давать больше когда столкнулись с проблемой. У нас есть решение из 2х машин одна шейпит вторая натит. Хотели сделать всё на одной более мощной. Гипертрейдинг отключен. Как писал выше у нас есть решение из 2х машин одна шейпит вторая натит. Такая связка без особых проблем переваривает 10G. Но 2 машины занимают в 2 раза больше места и в 2 раза менее надёжны. С ростом трафика нам понадобились ещё мощности вот и решили попробовать все на одной собрать. Сегодня попробую убрать одну карт и посмотреть что будет. Ещё интересный момент. Настроил сбор данных по conntrack и графики меня смущают. На новом сервере соотношение Estableshed, time_wait и syn_sent совсем не такое как на старых серверах. Новый Старый
  4. Приветствую всех. Имеем софтовый роутер. Роутер натит и шейпит клиентский трафик. При трафике до 3.5 G все работает. Но стоит пустить через сервер немного больше пользователей, трафик начинает плохо ходить. Пинг растёт, максимальная скорость через сервер падает до 60М (для тестового пользователя) хотя должна быть 200М (либо 800М если отключить шейпинг). Суммарный трафик при этом вырастает всего до 4G что вполне соответствует тому числу пользователей что мы добавляем. Загрузка процессора при этом 35-40% примерно ровно по всем ядрам. В логах тишина. Куда смотреть дальше подскажите. Сервер --- 2 процессора по 10 ядер 2 карты Intel X520-DA2 по 2sfp+ на каждой (объединены в bond 20G-in 20G-out) uname -a Linux Vega 4.9.0-6-amd64 #1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02) x86_64 GNU/Linux Такой вот тюнинг на сервере net.netfilter.nf_conntrack_max = 2097152 net.netfilter.nf_conntrack_count = 341468 vm.min_free_kbytes = 7596 /sys/module/nf_conntrack/parameters/hashsize = 262144 /sbin/ethtool -G eth2 rx 4096 tx 4096 /sbin/ethtool -G eth3 rx 4096 tx 4096 /sbin/ethtool -G eth4 rx 4096 tx 4096 /sbin/ethtool -G eth5 rx 4096 tx 4096 /bin/echo 1 > /proc/irq/`cat /proc/interrupts | grep 'eth2-TxRx-0' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity /bin/echo 2 > /proc/irq/`cat /proc/interrupts | grep 'eth2-TxRx-1$' | awk -F \: '{printf $1}'| tr -d ' '`/smp_affinity ... очереди карт распределены по ядрам perf top --------- 15.86% [kernel] [k] native_queued_spin_lock_slowpath 15.57% [kernel] [k] u32_classify 4.41% [kernel] [k] ixgbe_poll 3.98% [kernel] [k] _raw_spin_lock 2.45% [kernel] [k] ipt_do_table 1.89% [kernel] [k] fib_table_lookup 1.85% [kernel] [k] irq_entries_start
  5. Тестируем сервер при помощи https://trex-tgn.cisco.com/trex/doc/trex_manual.html Сервер должен работать как Nat. Если через сервер пускать реальный трафик, то всё корректно работает. Проблема появляется при тестах с помощью TREX, проходящий через тестируемый сервер трафик упорно не хочет натиться. Может кто сталкивался. В чём может быть проблема?
  6. Может кто посоветует какую ОС лучше ставить для данных задач. Какое ядро и т.п.
  7. Какие плюсы это даст? Попробую
  8. Гипертрейдинг отключен в BIOS Карты запускаю так (драйвер 5.0.4) modprobe ixgbe RSS=10,10,10,10 IntMode=2,2,2,2 MQ=1,1,1,1 VMDQ=0,0,0,0
  9. Приветствую всех. Помогите найти в чём проблема. Сервер: -Мать Supermicro -Xeon E5-2600v4 (2шт) -16Gb оперативки -Сетевая карта X520-DA2 (2шт) Стоит Debian 7 Карты собраны в bond 2x10 Прерывания прибиты к ядрам вручную через smp_affinity Задачи сервера: Шейпинг + NAT Сервер новый, перед вводам в эксплуатацию нужно проверить сколько он сможет переработать. Для начала на время теста NAT и шейпер отключили. Фактически сервер работает как L3 коммутатор, перекладывая пакеты с интерфейса на интерфейс. Тестируем с помощью https://trex-tgn.cisco.com/trex/doc/trex_manual.html к примеру t-rex-64 -f avl/sfr_delay_10_1g_no_bundeling.yaml -c 4 -l 10 -d 100000 -m 15 Первая проблема: При распределении прерываний через smp_affinity нагрузка более менее равномерно распределяется только при раскладе Core0 eth2-TxRx-0 eth3-TxRx-0 eth4-TxRx-0 eth5-TxRx-0 Core1 eth2-TxRx-1 eth3-TxRx-1 eth4-TxRx-1 eth5-TxRx-1 Core2 eth2-TxRx-2 eth3-TxRx-2 eth4-TxRx-2 eth5-TxRx-2 ... т.е. Очереди Х всех карт должны быть на одном и том же ядре Причём начинать раздавать ядра нужно именно с первого CPU Core0 Во всех остальных комбинациях идёт резкий дисбаланс нагрузки. Не удаётся каждой очереди карты дать отдельное ядро. По ethtool видно что TX пакеты перестают распределятся по очередям и весь TX прёт в одну очередь. Примечательно что на работающих серверах такого не происходит. Может ли это быть из за двух процессорности. Вторая проблема: В тестовом сервере стоит одна X520-DA2 карта 10G так что больше 10 проверить не получится. Запускаем тест. Трафик начинает ходить, растёт число nf_conntrack_count Загрузка ядер копеечная 5-10% НО как только sysctl net.netfilter.nf_conntrack_count доходит до 1 миллиона записей загрузка CPU резко вырастает до 40% Хотя размер таблиц echo 33554432 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max echo 16777216 > /sys/module/nf_conntrack/parameters/hashsize На первый план выходит do_raw_spin_lock perf top 8.19% [kernel] [k] do_raw_spin_lock 7.70% [kernel] [k] irq_entries_start 7.53% [ixgbe] [k] ixgbe_poll 5.18% [kernel] [k] ip_route_input_common 4.07% [ip_tables] [k] ipt_do_table 2.52% [kernel] [k] arch_read_lock В логах тишина. Если очистить conntrack -F то загрузка резко падает, пока снова не набежит около 1 миллиона записей.
  10. Сам нашел Нужно смотреть в сторону Self-defined ACL Configuration Сначала делаем шаблон в котором указываем откуда будут начинатся "окна" (есть несколько стартовых позиций и + смещение от них) В зависимости от типа ACL окна бывают разные, короткие swin по 2 байта (FFFF) и длинные lwin по 4 (FFFFFFFF) ВНИМАНИЕ смещение = размеру окна !!! В access-list standard есть только короткие окна по 2 байта. userdefined-access-list standard offset window1 l2endoftag 0 window2 l3start 7 window3 l3start 8 Далее создаем сам профиль описываем маску для окна и ожидаемое значение userdefined-access-list standard 1200 deny any-source-mac any-destination-mac untagged-eth2 window1 806 ffff window2 c0a8 ffff window3 0 fe00 Ну и привязываем правило к порту interface ethernet1/1-24 userdefined access-group 1200 in Данный ACL блокирует все ARP из сети 192.168.0.0/23
  11. Хоть и прошло много времени, но вопрос всё ещё актуален. Оборудование SNR S2960-24G Это не спасает т.к. далеко не все клиенты получают ip по DHCP. У Dlink заблокировать ARP можно так - заблокировать хождение arp для всей сети 192.168.0.0/23 create access_profile packet_content_mask offset1 l2 0 0xFFFF offset2 l3 14 0xFFFF offset3 l3 16 0xFE00 profile_id 7 config access_profile profile_id 7 add access_id 1 packet_content offset1 0x0806 offset2 0xc0a8 offset3 0x0000 port 1-28 deny Как нечто подобное можно на SNR сделать?
  12. Здравствуйте. Хотелось бы получить MIB(ы) для коммутатора SNR-S2970-12X На диске поставляемом с коммутатором их нет.
  13. clocksource hpet все так же юзаете? cat /sys/devices/system/clocksource/clocksource0/current_clocksource tsc А что порекомендуете почитать по данному вопросу
  14. Провел несколько тестов Все тесты проводил с включённым шейпереом 1) только RSS Результат не радует. в одну из очередей, причём как выяснилось не обязательно нулевую, прёт на порядок больше пакетов. Манипуляции с ethtool --set-rxfh-indir eth2 weight 0 0 0 1 не помогают. По непонятным причинам при достижении трафиком уровня в 1.6G скачкообразно повышается загрузка ЦП до 100% 2) только RPS В принципе результат RPS лучше чем RSS, но есть ряд трудностей. Например если сделать для нашей единственной очереди echo ff >/sys/class/net/eth3/queues/rx-0/rps_cpus то может возникает дисбаланс на одном из ядер. Результат лучше если не использовать это ядро. В таком варианте удалось прогнать 2.2G (больше не было), но что то говорит мне что 10G сервер не вытянет. т.к. загрузка ядер становится всё более неравномерной с ростом трафика и увеличивается нелинейно. 3) RSS + RPS Сделал 4 очереди для RSS и прибил их к ядрам, затем найдя перегруженную очередь сделал для не echo ff >/sys/class/net/eth3/queues/rx-1/rps_cpus В результате баланс загрузки ядер выровнялся. Что лучше вар 2 или 3 сказать не берусь. Как и в варианте 1 при достижении порога в 1.6G скачкообразно повышается загрузка ЦП до 100% такое ощущение что переполняется какой то буфер, но что крутить не знаю Может кто подскажет как оптимизировать работу 10G карты для шейпинга и NATa я уже не знаю куда смотреть.