Jump to content

FreeBSD нагрузка на проц при обработке трафика


Recommended Posts

Дано: 
сервер Dell PowerEdge R710
проц 2* Intel Xeon E5620 
оператива 2* 8Gb
сетевая 4-портовая broadcom NetXtreme II BCM5709

На железе стоит VMware ESXi 5.1.0

в нутри крутится виртуалка с FreeBSD 12.2
на которой работает билинг интернет провайдера "Ubilling: 1.1.3 rev 7831"
один выход сетевухи смотрит на абонов, второй в инет
входящий канал инета 1гигабит, 

при трафике в +/- 800Mb 2 ядра проца загружаются в 100% и прокачать больше трафика биллинг не может

нагрузка по обработке очередей сетевых карт висит на 2 ядрах  kernel {if_io_tqg_5} и kernel {if_io_tqg_7},
остальные ядра проца по большей части простаивают.

Кто что посоветует в решении данной проблемки ? 
Как можно размазать нагрузку между ядрами? 

Link to post
Share on other sites
5 часов назад, Nejron сказав:

Дано: 
сервер Dell PowerEdge R710
проц 2* Intel Xeon E5620 
оператива 2* 8Gb
сетевая 4-портовая broadcom NetXtreme II BCM5709

На железе стоит VMware ESXi 5.1.0

в нутри крутится виртуалка с FreeBSD 12.2
на которой работает билинг интернет провайдера "Ubilling: 1.1.3 rev 7831"
один выход сетевухи смотрит на абонов, второй в инет
входящий канал инета 1гигабит, 

при трафике в +/- 800Mb 2 ядра проца загружаются в 100% и прокачать больше трафика биллинг не может

нагрузка по обработке очередей сетевых карт висит на 2 ядрах  kernel {if_io_tqg_5} и kernel {if_io_tqg_7},
остальные ядра проца по большей части простаивают.

Кто что посоветует в решении данной проблемки ? 
Как можно размазать нагрузку между ядрами? 

Это уже не billing а все в 1 флаконе ) самая большая проблема  это 

VMware и небось там ещё и нат ). Биллинг оставьте в виртуалке хотя хе зачем не знаю а вот нас отдельно.

Link to post
Share on other sites
6 hours ago, Nejron said:
... и прокачать больше трафика биллинг не может ...

 

Стало аж любопытно, а зачем вы трафик прокачиваете чрез биллинг?

 

PS И вопрос форуму - как отключить этот глючный форумный редактор?

Link to post
Share on other sites

Сетевуху внутрь VM не прокидывал, да и хотелось бы этого избежать, 
и да, uBilling у меня со всем сопутствующим висит в одном "флаконе",

тут , так сказать, концепция "бомжпровайдера" ,
у меня вообще вся инфраструктура висела на 2-х "десктопнух ПК", и только пару месяцев назад поставил третий, 

на одном висит 1С, почтовик и PFsense для локалки, 
на втором IPTV, zabex, сайт,

ну и на третий вынес биллинг, 
все висит в VMware 5.1, для возможности быстрого разврачивания любой виртуалки на любом и ПК в случае нештатной ситуации.

и да, я по факту не админ, максимум еникей/монтажник,
"админ" сбежал лет 5 назад, когда я только устраивался на работу, 
вот с тех времен я и пытаюсь что то как то изучать и улучшать )))
 

Да и моя деятельность не сильно то интересует начальство, лиш бы не в минус работал, 
так что денег по факту нет ))) работаю скорее по личному интересу, а в другом случае закрылись бы уже давно.

Да и проблем с трафиком раньше почти не было, 
тут нагрузка подскочила в связи с карантином и удаленной работой/учебой, 
так что мне по сути раскинуть бы нагрузку по обработке сети по разным ядрам и зыбить о проблемках с сервачком еще на пару лет )))

  • Haha 2
Link to post
Share on other sites

top -SPHa   Посмотри какие процессы грузят. Но по любому собери другую машину для прогона трафика. 

И у тебя уже 800М , поэтому ставь сразу 4 гиговых порта , чтобы lagg настроить. Или же немножко трафика оставь на билинге, остальное на НАС.

Ну и сетевая  Intel 82576  как по мне лучше.

 

Edited by vovchokig
Link to post
Share on other sites
9 часов назад, Nejron сказал:

да, я по факту не админ, максимум еникей/монтажник,
"админ" сбежал лет 5 назад, когда я только устраивался на работу, 

Беги оттудова. Чего там делать-то? Ну разве шо зп очень гуд.

  • Like 1
Link to post
Share on other sites

все таки 1 гиг тянется, это у меня забекс сильно усреднял статистику
при снятии ее со свича, 
хотя вопрос с загрузкой ядер остается ,
 

 

Edited by Nejron
Link to post
Share on other sites

сделал тестовую виртуалку на том же железе и на той же фряхе

но с другой виртуальной сетевухой которая поддерживает TSO4,
нагрузка уменьшилась на половину,
30-32% при прогоне трафика в 800мб при включенном TSO4
и 60-65% при том же трафике при выключеном, 
но все равно нагрузка одет по одному ядру

Link to post
Share on other sites

фря не дружит с многопоточностью сетевой когда она в виртуалке

либо пробрасывать сетевку, либо на baremetal ставить

Link to post
Share on other sites

походу таки да, 
на тестовой виртуалке нагрузка небольшая только при тесте iperf3 с BSD 
а в обратную сторону (BSD как сервер iperf3) та же херня с упором в потолок, 
ща поексперименть с линой, может там что то по другому выстрелит, 
или я себе в голову выстрелю

Link to post
Share on other sites
9 часов назад, bit сказал:

Тюнят гики ;)

А еще нищеброды, 
хотя вполне возможно что из за безисходности в последствии они становятся гиками ))
 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By mac
      Глюк в тому, що один (так - тільки один) mac адрес onu існує в білінгу у вигляді строки. Це трохи заважає.
      olt - bdcom gepon.
      Наскільки зрозумів, це виключно проблема реалізації snmpwalk у freebsd, де snmpwalk може на свій розсуд віддати mac адресу не як hex-string, а як звичайний string.
      Можливо snmpwalk тригериться на якомусь символі, мені невідомо.
       
      # tcpdump -vv -i em0 udp port 161 and host olt and host ub | grep "3320.101.10.4.1.1.241 ... olt.snmp > ub.47940: [udp sum ok] { SNMPv2c C="*****" { GetResponse(44) R=93278354 E:3320.101.10.4.1.1.241="8LO"W*" } } ub.47940 > olt.snmp: [udp sum ok] { SNMPv2c C="*****" { GetNextRequest(34) R=93278355 E:3320.101.10.4.1.1.241 } } snmpwalk -c***** -v2c -t5 olt .1.3.6.1.4.1.3320.101.10.4.1.1 SNMPv2-SMI::enterprises.3320.101.10.4.1.1.241 = STRING: "8LO\"W*" snmpwalk -Ox -c***** -v2c -t5 olt .1.3.6.1.4.1.3320.101.10.4.1.1 SNMPv2-SMI::enterprises.3320.101.10.4.1.1.241 = Hex-STRING: 38 4C 4F 22 57 2A  
      Це стосується таких параметрів у snmp конфізі bdcom
       
      [signal] MACINDEX=".1.3.6.1.4.1.3320.101.10.4.1.1" [misc] ONUINDEX=".1.3.6.1.4.1.3320.101.11.1.1.3"  
      За для усунення глюку спробував трошки змінити код і завдати тип snmp параметру явно у ./api/libs/api.ponbdcom.php у function collect()
      Це працює. Мабуть станеться у нагоді:
       
      # diff api.ponbdcom.php{.new,.bak} 37c37 < $onuIndex = $this->snmp->walk('-Ox ' . $oltIp . ':' . self::SNMPPORT, $oltCommunity, $onuIndexOid, self::SNMPCACHE); --- > $onuIndex = $this->snmp->walk($oltIp . ':' . self::SNMPPORT, $oltCommunity, $onuIndexOid, self::SNMPCACHE); 91c91 < $macIndex = $this->snmp->walk('-Ox ' . $oltIp . ':' . self::SNMPPORT, $oltCommunity, $macIndexOID, self::SNMPCACHE); --- > $macIndex = $this->snmp->walk($oltIp . ':' . self::SNMPPORT, $oltCommunity, $macIndexOID, self::SNMPCACHE);  
      P.S. Створив тему, а зараз міркую: а може це глюк у ПЗ olt. Оновлю фірмваре olt та перевірю...
       

    • By a_n_h
      Всем доброго дня и мирного неба!
        После многочисленных экспериментов выяснил, что на последних версиях freebsd  максимум удавалось прокачать до 14 ГБт суммарно трафика со 100% загрузкой процессора. На том-же железе но с установленной freebsd 11.2 прокачивается до 20-ти ГБт суммарно тестового трафика с загрузкой процессора около 50%. 
        Подскажите, что можно убрать или наоборот добавить в систему с freebsd 13,3 для получения аналогичного результата...
    • By Javamslx
      Київ потрібен інтернет (волокно) під відеонагляд
      Дві точки Голосієво, Святошино 
      https://maps.app.goo.gl/yMETWNBCqxYvNNWo9?g_st=iv
       
      https://maps.google.com/maps?q=loc:50.49005,30.38276
    • By mac
      Здається, після оновлення PHP 7.4 до PHP 8.2 feesharvester припинив працювати:
       
      /usr/local/bin/curl "http://127.0.0.1/billing/?module=remoteapi&key={SERIAL}&action=feesharvester" <br /> <b>Fatal error</b>: Uncaught TypeError: Unsupported operand types: string - string in {UBPATH}/billing/api/libs/api.fundsflow.php:570 Stack trace: #0 {UBPATH}/billing/modules/remoteapi/feesharvester.php(22): FundsFlow-&gt;harvestFees('2024-01') ...  
      Невеличке розслідування врешті з'ясувало, що це через наявність пробілу у деяких логінах абонентів. Як так сталося? Тому що інколи був неуважно додан трейлінг пробіл до номеру будинка і цей пробіл потрапив до логіну абоненту. Логін абоненту неможливо змінити ніяким чином штатними засобами. Я не розглядаю створення нового абонента для усунення помілки.

      Був обран такий шлях вирішення проблеми. Заміну функції php explode() знайшов у мережі. Мабуть це станеться в нагоді:

       
      diff api.fundsflow.php.bak api.fundsflow.php.new 559c559 < $eachfee = explode(' ', $eachline); --- > $eachfee = preg_split("~(?<!\\\\)(?:\\\\{2})*'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'(*SKIP)(*F)|\s+~s" , $eachline);  
×
×
  • Create New...