Jump to content

Recommended Posts

Posted (edited)

Есть FreeBSD-роутер (8.0), 2 em-карточки, bgpd+ripd+zebra, NAT (pf), чуток правил и пайпов ipfw. Роутит порядка 300 мбит (интернет), 40-50 kpps (in/out)

 

В принципе, все нормально работает, перегрузки нет - но почему-то сегодня утром (понятное дело - совсем не перегруженное время, наоборот - нагрузка снижена) стало резко всё тормозить, потеря пакетов, роутер не отзывается. В логах несколько демонов одновременно пишут:

 

syslogd: sendto: Cannot allocate memory

dhcpd: send_packet: Cannot allocate memory

ripd[1419]: can't send packet : Cannot allocate memory

bgpd[1415]: can't connect to XXX.XXX.XXX.XXX fd 7 : Cannot allocate memory

 

top посмотрел - памяти свободной навалом (всего 4гб).

Вылечилось ребутом. Поставил vm.kmem_size_max: 536870912 (было 300мб), но не уверен что проблема была в этом. Погуглил - ничего толкового не нашел.

 

Может быть кто-нибудь сталкивался с таким, подскажете куда копать?

Edited by networks
Posted

А кто-нибудь может подсказать, как посмотреть, что именно происходит в процессах swi1: netisr X ? Чем они заняты в какой-то конкретный момент. На роутере pf nat и dummynet, две сетевые em, проц Core i3 3.20Ghz.

 

Просто делаю net.isr.maxthreads - 3, создаются три thread'а swi1: netisr X, но реально работают только два (третий - вообще не грузит процессор, куда бы его не перемещай cpuset'ом) - интересно, почему только два работают, а третий отдыхает.

Posted

На другой машине (чистый шейпер dummynet, без NAT, BGP, чего-либо еще, динамические пайпы, одна карточка em, трафик входит в один vlan-интерфейс и выходит из другого - т.е. роутинг) - выставлено net.isr.maxthreads=4 (net.isr.numthreads тоже = 4)

 

top -PSH -b 250 | grep netisr

12 root -44 - 0K 152K WAIT 1 45.9H 25.68% {swi1: netisr 1}

12 root -44 - 0K 152K WAIT 0 55.5H 21.29% {swi1: netisr 0}

12 root -44 - 0K 152K WAIT 1 0:00 0.00% {swi1: netisr 2}

12 root -44 - 0K 152K WAIT 0 0:00 0.00% {swi1: netisr 3}

 

Опять же - реально работают два обработчика, а еще два - ничего не делают. С чем это может быть связано?

Posted

Т.е. если будет 4 честных ядра - то теоретически, будут работать и два остальных swi? Как они определяют, интересно, "честное" ядро, или нет :)

 

А у Core i5 или i7 - честные 4 ядра?

Posted

Поставил сегодня Core i7 на этот роутер, сделал net.isr.maxthreads = 4. По прежнему 2 треда работают (создают нагрузку на процы), 2 курят бамбук :( Интересно, как их все заставить работать. Или дело в не-распаралеливательности pf?

Posted
Протестируйте под нагрузкой и сами узнаете, нужно оно в вашем случае или нет.
Т.е., каждый случай индивидуален и общих рекомендаций нет?

 

Спасибо!

 

Posted
Т.е., каждый случай индивидуален и общих рекомендаций нет?
Это не винда+квака.

 

Здесь патчи в ядро каждую неделю появляются, как и для многих компонент, естественно они влияют на поведение как системы в целом так и отдельных приложений.

Кроме того, на поведение системы и приложений влияют опции с которыми собрано ядро, загруженные драйвера, опции для компилятора и тюнинг системы (лоадер+сисцтл).

Само приложение тоже может по разному работать в средах с разным количеством процов и разными опциями сборки и компилятора.

Железо тоже по разному работает, те же контролёры памяти от интела и амд могут давать сильно разные результаты для одних и тех же операций.

 

Факторов масса, а их сочетаний ещё больше.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.