Jump to content

Настройка FreeBSD


Recommended Posts

Господа, может быть кто-нибудь поможет немного разобраться в ситуации. Буду оч. признателен.

FreeBSD 8 64 обслуживает сеть на 500 абонентов с тарифами до 30Мбит

Загрузка проца до 90%.

 

в /var/log/messages вот такой беспредел постоянно:

 

 

Nov 28 22:29:00 billing named[4598]: client 10.102.0.157#59721: error sending response: not enough free resources

Nov 28 22:29:04 billing named[4598]: client 10.102.0.48#50931: error sending response: not enough free resources

Nov 28 22:30:14 billing named[4598]: client 10.102.0.13#57705: error sending response: not enough free resources

Nov 28 22:31:14 billing named[4598]: client 10.102.0.13#52667: error sending response: not enough free resources

Nov 28 22:31:27 billing named[4598]: client 10.102.0.13#63844: error sending response: not enough free resources

Nov 28 22:31:28 billing named[4598]: client 10.102.0.13#54231: error sending response: not enough free resources

Nov 28 22:31:32 billing named[4598]: client 10.102.0.13#59381: error sending response: not enough free resources

Nov 28 22:32:01 billing named[4598]: client 10.101.0.17#61350: error sending response: not enough free resources

Nov 28 22:32:04 billing named[4598]: client 10.102.1.39#49844: error sending response: not enough free resources

Nov 28 22:32:04 billing named[4598]: client 10.102.1.39#51602: error sending response: not enough free resources

Nov 28 22:32:04 billing named[4598]: client 10.102.1.39#49624: error sending response: not enough free resources

Nov 28 22:32:04 billing named[4598]: client 10.102.1.39#64985: error sending response: not enough free resources

Nov 28 22:32:04 billing named[4598]: client 10.102.1.39#52094: error sending response: not enough free resources

Nov 28 22:32:24 billing udpxy[10833]: write_buf: write: Broken pipe

Nov 28 22:32:36 billing udpxy[10835]: write_buf: write: Broken pipe

Nov 28 22:32:43 billing udpxy[10836]: write_buf: write: Broken pipe

Nov 28 22:33:07 billing udpxy[10837]: write_buf: write: Broken pipe

Nov 28 22:33:52 billing named[4598]: client 10.102.1.177#54155: error sending response: not enough free resources

Nov 28 22:33:52 billing named[4598]: client 10.102.1.177#53518: error sending response: not enough free resources

Nov 28 22:33:52 billing named[4598]: client 10.102.1.177#64192: error sending response: not enough free resources

Nov 28 22:34:26 billing udpxy[10857]: write_buf: write: Broken pipe

Nov 28 22:34:43 billing udpxy[10865]: write_buf: write: Broken pipe

Nov 28 22:35:00 billing udpxy[7343]: wait_children: waitpid: Interrupted system call

Nov 28 22:35:00 billing udpxy[7343]: udpxy 1.0-Chipmunk (build 19) standard is exiting with rc=[0]

Nov 28 22:35:00 billing udpxy[10898]: udpxy 1.0-Chipmunk (build 19) standard is starting

Nov 28 22:35:02 billing udpxy[10906]: write_buf: write: Connection reset by peer

Nov 28 22:35:15 billing udpxy[10912]: write_buf: write: Broken pipe

Nov 28 22:35:39 billing udpxy[10927]: write_buf: write: Broken pipe

Nov 28 22:35:54 billing udpxy[10941]: write_buf: write: Broken pipe

Nov 28 22:36:03 billing named[4598]: client 10.102.0.13#52582: error sending response: not enough free resources

Nov 28 22:36:15 billing named[4598]: client 10.102.0.225#51068: error sending response: not enough free resources

Nov 28 22:36:21 billing named[4598]: client 10.102.0.107#57504: error sending response: not enough free resources

Nov 28 22:36:21 billing named[4598]: client 10.102.0.107#61439: error sending response: not enough free resources

Nov 28 22:36:21 billing named[4598]: client 10.102.0.107#64007: error sending response: not enough free resources

Nov 28 22:36:21 billing named[4598]: client 10.102.0.107#64008: error sending response: not enough free resources

Nov 28 22:36:25 billing udpxy[10942]: write_buf: write: Broken pipe

Nov 28 22:36:30 billing named[4598]: client 10.102.0.112#62676: error sending response: not enough free resources

Nov 28 22:36:33 billing named[4598]: client 10.102.0.31#62765: error sending response: not enough free resources

Nov 28 22:36:34 billing udpxy[10950]: write_buf: write: Broken pipe

Nov 28 22:36:34 billing named[4598]: client 10.102.0.112#62422: error sending response: not enough free resources

Nov 28 22:36:35 billing named[4598]: client 10.102.0.112#49828: error sending response: not enough free resources

Nov 28 22:36:35 billing named[4598]: client 10.102.0.112#53742: error sending response: not enough free resources

Nov 28 22:36:36 billing named[4598]: client 10.102.0.112#53593: error sending response: not enough free resources

Nov 28 22:36:36 billing named[4598]: client 10.102.0.112#49583: error sending response: not enough free resources

Nov 28 22:36:37 billing named[4598]: client 10.102.0.112#55005: error sending response: not enough free resources

Nov 28 22:36:37 billing named[4598]: client 10.102.0.112#53593: error sending response: not enough free resources

Nov 28 22:36:37 billing named[4598]: client 10.102.0.112#57788: error sending response: not enough free resources

Nov 28 22:36:38 billing named[4598]: client 10.102.0.112#55005: error sending response: not enough free resources

Nov 28 22:36:38 billing named[4598]: client 10.102.0.112#51334: error sending response: not enough free resources

Nov 28 22:36:47 billing named[4598]: client 10.102.1.69#58646: error sending response: not enough free resources

Nov 28 22:36:48 billing named[4598]: client 10.102.1.177#52866: error sending response: not enough free resources

Nov 28 22:36:48 billing named[4598]: client 10.102.1.177#51998: error sending response: not enough free resources

Nov 28 22:36:54 billing named[4598]: client 10.102.1.177#52533: error sending response: not enough free resources

Nov 28 22:36:54 billing named[4598]: client 10.102.1.177#56003: error sending response: not enough free resources

Nov 28 22:36:57 billing named[4598]: client 10.102.1.177#56806: error sending response: not enough free resources

Nov 28 22:36:58 billing named[4598]: client 10.102.1.177#56806: error sending response: not enough free resources

Nov 28 22:37:00 billing named[4598]: client 10.102.1.177#64512: error sending response: not enough free resources

Nov 28 22:37:01 billing named[4598]: client 10.102.1.177#64512: error sending response: not enough free resources

Nov 28 22:37:04 billing named[4598]: client 10.102.0.13#54577: error sending response: not enough free resources

Nov 28 22:37:04 billing named[4598]: client 10.102.1.177#54228: error sending response: not enough free resources

Nov 28 22:37:04 billing named[4598]: client 10.102.0.31#55000: error sending response: not enough free resources

Nov 28 22:37:34 billing named[4598]: client 10.102.1.177#52874: error sending response: not enough free resources

Nov 28 22:37:40 billing named[4598]: client 10.102.1.238#62508: error sending response: not enough free resources

Nov 28 22:37:42 billing named[4598]: client 10.102.1.136#58088: error sending response: not enough free resources

Nov 28 22:37:57 billing udpxy[10951]: write_buf: write: Broken pipe

Nov 28 22:38:06 billing udpxy[10959]: write_buf: write: Broken pipe

Nov 28 22:38:13 billing udpxy[10967]: write_buf: write: Broken pipe

Nov 28 22:38:31 billing udpxy[10968]: write_buf: write: Broken pipe

Nov 28 22:38:39 billing named[4598]: client 10.102.0.225#54582: error sending response: not enough free resources

Nov 28 22:38:39 billing named[4598]: client 10.102.0.225#63455: error sending response: not enough free resources

Nov 28 22:38:47 billing udpxy[10969]: write_buf: write: Broken pipe

Nov 28 22:39:01 billing udpxy[10970]: write_buf: write: Broken pipe

Nov 28 22:39:03 billing named[4598]: client 10.101.0.4#64903: error sending response: not enough free resources

Nov 28 22:39:13 billing udpxy[10976]: write_buf: write: Broken pipe

Nov 28 22:39:26 billing named[4598]: client 10.102.1.136#56137: error sending response: not enough free resources

Nov 28 22:39:26 billing named[4598]: client 10.102.1.136#57069: error sending response: not enough free resources

Nov 28 22:39:28 billing udpxy[10979]: write_buf: write: Broken pipe

Nov 28 22:39:52 billing udpxy[10980]: write_buf: write: Broken pipe

Nov 28 22:40:03 billing udpxy[10898]: wait_children: waitpid: Interrupted system call

Nov 28 22:40:03 billing udpxy[10898]: udpxy 1.0-Chipmunk (build 19) standard is exiting with rc=[0]

Nov 28 22:40:03 billing udpxy[11025]: udpxy 1.0-Chipmunk (build 19) standard is starting

Nov 28 22:40:09 billing named[4598]: client 10.102.1.69#59568: error sending response: not enough free resources

Nov 28 22:40:20 billing udpxy[11026]: write_buf: write: Broken pipe

Nov 28 22:40:43 billing udpxy[11058]: write_buf: write: Broken pipe

Nov 28 22:41:38 billing named[4598]: client 10.102.1.19#16304: error sending response: not enough free resources

Nov 28 22:41:38 billing named[4598]: client 10.102.1.19#16307: error sending response: not enough free resources

Nov 28 22:42:15 billing named[4598]: client 10.102.1.63#55887: error sending response: not enough free resources

Nov 28 22:43:04 billing named[4598]: client 10.102.1.185#54371: error sending response: not enough free resources

Nov 28 22:44:21 billing named[4598]: client 10.102.1.132#60418: error sending response: not enough free resources

Nov 28 22:44:21 billing named[4598]: client 10.102.1.132#52891: error sending response: not enough free resources

Nov 28 22:45:40 billing named[4598]: client 10.101.0.4#54651: error sending response: not enough free resources

Nov 28 22:45:40 billing named[4598]: clients-per-query decreased to 17

Nov 28 22:46:29 billing named[4598]: client 10.102.0.107#57503: error sending response: not enough free resources

Nov 28 22:46:29 billing named[4598]: client 10.102.0.107#61031: error sending response: not enough free resources

Nov 28 22:46:29 billing named[4598]: client 10.102.0.107#64073: error sending response: not enough free resources

Nov 28 22:46:29 billing named[4598]: client 10.102.0.107#49893: error sending response: not enough free resources

 

Что-бы это значило и что делать?

 

Заранее спасибо за отзывы!

Link to post
Share on other sites

Та намедовские варнинги до одного места, они ни на что не влияют.

udpxy тоже, там постоянно что-то не так.

Я бы вынес эти (хотя бы) задачи на отдельный тазик и забил.

Link to post
Share on other sites
клиенты за натом или реальные адреса?

10.102.0.225, 10.102.0.107.... да блин, реальней не бывает....

 

error sending response: not enough free resources

пофиг

Link to post
Share on other sites

top -SPHC немного прояснил бы ситуацию, 90% от E3-1220 на 200 Мегабит трафа - это вообще ни в какие ворота.

cat /var/run/dmesg.boot

cat /boot/loader.conf

cat /etc/sysctl.conf

kldstat

uname -a

Link to post
Share on other sites

Сетевые 4 x Intel® 82574L

Видятся как

em0: <Intel® PRO/1000 Network Connection 7.2.3> port 0xe000-0xe01f mem 0xdfe00000-0xdfe1ffff,0xdfe20000-0xdfe23fff irq 16 at device 0.0 on pci3

em0: Using MSIX interrupts with 3 vectors

 

На em0 8 vlans (канал 100М) на em1 один (канал 200М). Вынесли на отдельную т.к. начало упираться в прерывания.

 

top -SPHC:

last pid: 8859; load averages: 3.75, 4.04, 3.51 up 0+00:25:02 20:18:12

189 processes: 13 running, 155 sleeping, 21 waiting

CPU 0: 1.1% user, 0.0% nice, 12.0% system, 84.8% interrupt, 2.2% idle

CPU 1: 1.1% user, 0.0% nice, 28.3% system, 66.3% interrupt, 4.3% idle

CPU 2: 0.0% user, 0.0% nice, 65.2% system, 18.5% interrupt, 16.3% idle

CPU 3: 0.0% user, 0.0% nice, 57.6% system, 25.0% interrupt, 17.4% idle

Mem: 171M Active, 129M Inact, 218M Wired, 432K Cache, 62M Buf, 3386M Free

Swap: 4096M Total, 4096M Free

 

PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND

12 root -92 - 0K 400K CPU1 1 22:32 100.00% intr{irq259: em1:rx 0}

12 root -92 - 0K 400K CPU0 3 21:39 100.00% intr{irq256: em0:rx 0}

0 root -92 0 0K 256K - 2 13:26 63.18% kernel{em1 rxq}

0 root -92 0 0K 256K - 0 8:33 44.87% kernel{em0 rxq}

0 root -92 0 0K 256K CPU2 2 11:08 43.46% kernel{dummynet}

11 root 155 ki31 0K 64K RUN 3 7:47 25.10% idle{idle: cpu3}

11 root 155 ki31 0K 64K RUN 2 7:35 20.65% idle{idle: cpu2}

11 root 155 ki31 0K 64K RUN 1 3:51 9.86% idle{idle: cpu1}

11 root 155 ki31 0K 64K RUN 0 2:14 4.05% idle{idle: cpu0}

0 root -16 0 0K 256K sched 3 0:23 0.00% kernel{swapper}

12 root -92 - 0K 400K WAIT 3 0:04 0.00% intr{irq257: em0:tx 0}

4617 bind 20 0 118M 80592K uwait 0 0:04 0.00% named{named}

4617 bind 20 0 118M 80592K uwait 0 0:04 0.00% named{named}

4617 bind 20 0 118M 80592K RUN 0 0:04 0.00% named{named}

4617 bind 20 0 118M 80592K uwait 0 0:04 0.00% named{named}

 

FreeBSD 9.0-RELEASE

 

include GENERIC

 

nooption INET6

 

options IPFIREWALL

options IPFIREWALL_DEFAULT_TO_ACCEPT

options IPFIREWALL_VERBOSE

options IPFIREWALL_VERBOSE_LIMIT=16

options IPFIREWALL_FORWARD

options IPFIREWALL_NAT

options DUMMYNET

options LIBALIAS

 

kldstat:

Id Refs Address Size Name

1 9 0xffffffff80200000 11a8518 kernel

2 1 0xffffffff81412000 1ba9 ng_socket.ko

3 2 0xffffffff81414000 8e12 netgraph.ko

4 1 0xffffffff8141d000 1861 ng_mppc.ko

5 1 0xffffffff8141f000 284 rc4.ko

 

loader.conf пуст

autoboot_delay="2"

#hw.em.rxd="4096" особой разницы нет

#hw.em.txd="4096"

 

sysctl на сегодня такой:

 

net.inet.tcp.blackhole=2

net.inet.udp.blackhole=1

net.inet.icmp.drop_redirect=1

net.inet.ip.redirect=0

net.inet.ip.dummynet.io_fast=1

net.route.netisr_maxqlen=1024

net.inet.tcp.recvspace=131072

net.inet.tcp.sendspace=131072

net.inet.ip.fw.dyn_buckets=4096

net.inet.ip.fw.dyn_max=16384

net.inet.ip.intr_queue_maxlen=8192

net.inet.ip.dummynet.pipe_slot_limit=2048

net.inet.ip.dummynet.hash_size=65535

kern.ipc.somaxconn=32768

kern.ipc.nmbclusters=524288

kern.ipc.maxsockets=32768

Link to post
Share on other sites

ipfw правил сколько ?

шейпите так ?

ipfw add pipe tablearg ip from table(31) to any in recv vlan*

ipfw add pipe tablearg ip from any to table(30) out xmit vlan*

 

hw.em.rxd="4096"

hw.em.txd="4096"

должны быть

sysctl net.isr.direct=1

sysctl net.inet.ip.fastforwarding=1

также покажите какие крутилки есть в `sysctl dev.em`

проверьте наличие чего-то похожего

dev.em.1.rx_int_delay: 600

dev.em.1.tx_int_delay: 600

dev.em.1.rx_abs_int_delay: 1000

dev.em.1.tx_abs_int_delay: 1000

 

vmstat -i покажите

.

Link to post
Share on other sites

netstat -m ?

Если буферы не переполнены, посмотрите не закрыт ли доступ для выших шлюзов в фаере.

 

 

Загрузка проца до 90%.

 

Что у вас за зверь стоит такой?)

Link to post
Share on other sites

>>ipfw правил сколько ?

где-то 1500

 

>>шейпите так ?

Шейпим не так. Если убрать все шейпы к айделу плюсуется 15% примерно что не существенно.

 

 

>>hw.em.rxd="4096"

>>hw.em.txd="4096"

>>должны быть

ставил разницы нет.

 

>>sysctl net.isr.direct=1

В девятке эта штука реадонли. Поменять можно только профалом net.isr.dispatch.

В приципе, она отключает isr. В итоге теряем распределение нагрузки по процессорам.

На этой машинке отнимает у айдела гдето 20%.

 

>>sysctl net.inet.ip.fastforwarding=1

Тоже самое.

 

 

также покажите какие крутилки есть в `sysctl dev.em`

проверьте наличие чего-то похожего

dev.em.1.rx_int_delay: 600

dev.em.1.tx_int_delay: 600

dev.em.1.rx_abs_int_delay: 1000

dev.em.1.tx_abs_int_delay: 1000

 

>>vmstat -i покажите

. vmstat -i

interrupt total rate

irq16: ehci0 18956 1

irq19: atapci0+ 23809 1

irq23: ehci1 19008 1

cpu0:timer 14189069 1125

irq256: em0:rx 0 83414683 6615

irq257: em0:tx 0 70173100 5565

irq258: em0:link 2 0

irq259: em1:rx 0 92266550 7317

irq260: em1:tx 0 87291633 6922

irq261: em1:link 2 0

cpu1:timer 13989701 1109

cpu2:timer 13789929 1093

cpu3:timer 11229249 890

Total 386405691 30645

 

 

>> Если буферы не переполнены, посмотрите не закрыт ли доступ для выших шлюзов в фаере.

Буферы не переполнены. Если закрыть доступ к шлюзу, то как тогда натить ?

Link to post
Share on other sites

ipfw правил сильно много. System, скорее всего, все отжирает по этой причине.

Ужмитесь хотябы до 30-40 это решит проблему.

Link to post
Share on other sites

присоединяюсь к bit не больше 40.

 

Конструкции

${ipfw} pipe 4095 config bw 4Mbit/s mask src-ip 0xFFFFFFFF buckets 1024

${ipfw} pipe 4096 config bw 4Mbit/s mask dst-ip 0xFFFFFFFF buckets 1024

приводит к клонированию пайпа 4095, 4096 для каждого src, dst ip, поэтому если создать правило

ipfw add pipe 4095 ip from "table(30, 4095)" to any in via vlan*

для каждого ip в table(30) будет создан свой пайп

ipfw add pipe tablearg ip from "table(30)" to any via vlan* сделает то же самое

для исхода второе правило по-аналогии

в таблицу клиентов добавлять: ipfw table 30 add 192.168.1.100 4095

для исхода своё правило и своя таблица ipfw table 31 add 192.168.1.100 4096

это может сильно сократить количество правил если они у вас все на шейпера разошлись

выложить полный конфиг ?

Link to post
Share on other sites

Помниться мне, что в свое время на где-то 500 клиентах при кол-ве правил шейпа под тысячу где-то так всё и было.

Пришлось оптимизировать под О(кол-во тарифов), сведя где-то к 50-60....

И как часы который год....

Link to post
Share on other sites

Да, вы правы.

Загрузка сильно зависит от количества правил.

Будем оптимизировать.

 

Благодарю за внимание и небезразличие.

Link to post
Share on other sites

Для статистики сообщаю результаты.

 

Перекинул пока всех в один канал. Фаервол сократил до 30 правил, получил нагрузку 25% при трафике 200Мбит/сек.

Link to post
Share on other sites

Ну теперь нагрузка зависит не от трафика а от кол-ва активных пользователей, т.е. активных пайпов.

Тюнинг сетевых плюсов не дал. Только аномалии.

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.

×
×
  • Create New...