Перейти до

Большой interrupt на одном ядре на маршрутизаторе.


Рекомендованные сообщения

Всем привет.

 

Прошу помощи, не могу уже больше года побороть одну проблему.

 

Иногда (раз в неделю, раз в месяц...), в основном в час пик, резко вырастает interrupt на одном из четырех ядер на сервере, на котором FreeBSD 10.1 + Nodeny + IPFW + PF + DHCP, при этом клиенты жалуются, что очень тупит интернету.

 

Я этот симптом вижу на сервере так через top -SHPi:

1051622026__viber_2022-11-28_18-21-24.jpg.bf730cbede728e854710842054a08514.jpg

 

 

Так же наблюдаю значительное увеличение пакетов через команду netstat -hdw1 -i ix0

 

Помогает в таких ситуациях следующее:

 

1. Выключение на пару секунд и включение всех клиентских портов на центральном коммутаторе.

2. Выключение по одному порту на центральном коммутаторе, но не всегда этот метод срабатывает.

3. Иногда помогает перезагрузка сервера (но не всегда).

 

Подскажите, на что в такой ситуации еще обратить внимание? Я ведь купирую следствие проблемы, но саму проблему не могу определить.

 

Готов заплатить за помощь.

 

Відредаговано rusol
Ссылка на сообщение
Поделиться на других сайтах

1. Замените железо на более производительное, а лучше реализуйте схему биллинг отдельно от брасов, которых должно быть несколько.

2. Смените версию FreeBSD на нечетную.

3. Сделайте так, чтобы ipcad потреблял меньше ресурсов (копните в сторону netflow, мануалы на офсайте есть).

Відредаговано zababaha
Ссылка на сообщение
Поделиться на других сайтах
  • 2 weeks later...

Благодарю за ваши ответы!

 

По поводу замены железа на более производительное:

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

 

По поводу смены версии на более новую, это сервак старенький, ему лет 5 точно, может ли такое быть, что 4 года такого не было, а на 5 год появилась эта проблема и может вылечиться переустановкой Фри на более свежую?

 

Ipcad почему-то на скриншоте аномально потреблял проц, обычно это небольшое потребление, в раене 3-4%.
 

Те, що в мене LA майже 4, якщо цей глюк не проявляється, то в мене LA при піковій нагрузці в районі 2, можливо я помиляюсь, але є таке відчуття, що з мережі на сервак різко прилітає штучно згенерована куча пакетів (типу атаки якоїсь) і тоді проявляється такий глюк.

 

Один раз ми навіть вияснили конкретного клієнта, після відключення котрого цей глюк різко пропадав. Але нічого підозрілого в нього не знайшли.

 

F0B284F8-7CE2-4479-A2A2-EB78C88E799C.thumb.png.db7d379321d3419cdfa151d5757964d1.png

Ссылка на сообщение
Поделиться на других сайтах

И вот только-что проявился этот глюк на абсолютно низкой нагрузке (сейчас веерное отключение света, нагрузка на сервер от пиковой максимум 10-15%)

 

Количество пакетов тоже было небольшое (примерно 100К), смотрел через netstat -hdw1 -i ix0, сервак молотит в час пик 200-250К, и все норм.

 

 

3196BC26-9680-4B07-9383-FD6C9046F7E7.thumb.png.9b8f1ed4924542f1c743cded17901dac.png

 

E7D5E3DB-01C5-4D96-853C-553266FA33D7.thumb.png.23f504e8a4809db83354bc6d6ac6b314.png

Ссылка на сообщение
Поделиться на других сайтах

Так же написал скрипт-снятие симптомов этой ситуации методом выключения и включения сетевой карты на маршрутизаторе. Может ли кто-то помочь добавить проверку загрузки interrupt, как только одно из ядер процессора будет больше загружено, чем в сумме все остальные в раза 2, то выключить и включить сетевую. Поставлю в крон, пока буду искать решение этой проблемы.

 

1A12D36F-BBDD-4169-8E7A-16D6AA2BA539.thumb.png.badfdd33a2cfc3acc6f8200d0e022165.png

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від 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 та перевірю...
       

    • Від a_n_h
      Всем доброго дня и мирного неба!
        После многочисленных экспериментов выяснил, что на последних версиях freebsd  максимум удавалось прокачать до 14 ГБт суммарно трафика со 100% загрузкой процессора. На том-же железе но с установленной freebsd 11.2 прокачивается до 20-ти ГБт суммарно тестового трафика с загрузкой процессора около 50%. 
        Подскажите, что можно убрать или наоборот добавить в систему с freebsd 13,3 для получения аналогичного результата...
    • Від 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);  
    • Від FantoM_EscapE
      Хочу перенести свій білінг NODENY із фізичного сервера на віртуальний. Шукаю адміна який зможе допомогти у цьому питанні, так як нашого адміна банально призвали до війська. Вся схема на даний момент робоча, маю доступи до всього. Потрібно проінсталити на новішу версію FREEBSD, бо на моїй 10 річній вже не працюють нові SSL сертифікати. Кого зацікавила дана пропозиція - прошу у приватні повідомлення. обсудимо ціну і строки. або пишіть на будь-який месенджер 0677792091
    • Від rusol
      Добрый вечер.
       
      Есть от провайдера блок реальных адресов, к примеру 100.1.1.192/26
       
      Раньше сеть была в одном влане и записи в /etc/rc.conf были такие:

       
      ifconfig_ix0="inet 192.168.0.1 netmask 255.255.255.0" # Шлюз для пользователей с локальным IP ifconfig_ix0_alias0="inet 100.1.1.193 netmask 255.255.255.192" # Шлюз для пользователей с реальными IP  
      После чего стала задача часть пользователей переводить во вланы тоже с разделением на локальные IP и реальные, первый влан создал где-то пару лет назад и все работает:
       
      ifconfig_vlan1="vlan 1 vlandev ix0 192.168.1.1 netmask 255.255.255.0" # Шлюз для пользователей с локальным IP во Влане 1 ifconfig_vlan1_alias0="inet 100.1.1.248 netmask 255.255.255.248" # Шлюз для пользователей с реальными IP  во Влане 1  
      И вот стоит задача создать еще один влан, делаю по аналогии с вланом 1, только маску смещаю назад:
       
      ifconfig_vlan2="vlan 2 vlandev ix0 192.168.1.1 netmask 255.255.255.0" # Шлюз для пользователей с локальным IP во Влане 2 ifconfig_vlan2_alias0="inet 100.1.1.246 netmask 255.255.255.254" # Шлюз для пользователей с реальными IP во Влане 2  
      Когда я внес это в /etc/rc.conf и прописал команду:
       
      ifconfig vlan2 create  
      Все заработало.
       
      Но как только перезагрузился сервер, перестали работать реальные IP без вланов, в первом влане и во втором. Не пойму что не так делаю, возможно я с маской подсети что-то недопонимаю...
×
×
  • Створити нове...