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

ipfw3: Cannot allocate memory

Добрый день.

 

Столкнулись с проблемой с IPFW3:

ipfw: setsockopt(IP_DUMMYNET_CONFIGURE): Cannot allocate memory

 

При этом перестает бегать трафик (скорее всего связано с невозможностью выделить память под создание новых PIPE). В консоль валятся сообщения

Mar  3 12:06:11 bridge kernel: Bump sched buckets to 65536 (was 0)
Mar  3 12:06:11 bridge kernel: config_sched cannot allocate scheduler 65564
Mar  3 12:06:11 bridge kernel: Bump sched buckets to 65536 (was 0)
Mar  3 12:06:11 bridge kernel: config_sched cannot allocate scheduler 65565

Если в это время попробовать что-либо выполнить в консоли (sysctl, tcpdump, etc), то система перезагружается без предупреждения!

 

Каждое день в 6 часов утра перезапускается фаервол. Но как видно из графиков ниже, память все равно не освобождается и фаервол отрабатывает некорректно. Если перезапустить фаервол руками, то ничего не меняется.

Помогает только перезагрузка системы.

nag1.png

nag2.png

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

 

В чем может быть причина такого поведения? Почему не освобождается память? Может у нас неправильно выставлены параметры в sysctl?

 

Система

FreeBSD 8.1-STABLE-201010 #1: Fri Feb  4 16:46:02 MSK 2011

 

В начале rc.firewall прописаны такие правила для очистки очередей и пайпов:

 

IPFW="/sbin/ipfw -fq"
$IPFW flush
$IPFW pipe flush
$IPFW queue flush
for tables in 1 2 3 4 5 6 7 8 10 11 20 21 40 41 80 81 120 121 122 123 110 111 112 113 42 43 44 45 46 47 48 49 50 51 52
do
    ipfw table "$tables" flush
done

 

Далее правила такого рода:

...
$IPFW pipe 11 config bw 1040Kbit/s mask dst-ip 0xffffffff
$IPFW pipe 12 config bw 1040Kbit/s mask src-ip 0xffffffff
$IPFW add pipe 11 ip from any to table\(10\) via igb0 out
$IPFW add pipe 12 ip from table\(11\) to any via igb1 out
$IPFW add pipe 11 ip from any to table\(10\) via igb2 out
$IPFW add pipe 12 ip from table\(11\) to any via igb3 out
$IPFW add allow ip from any to table\(10\)
$IPFW add allow ip from table\(11\) to any
...

 

Вот такие параметры в sysctl:

 

net.inet.ip.dummynet.io_pkt_drop: 7804870
net.inet.ip.dummynet.io_pkt_fast: 0
net.inet.ip.dummynet.io_pkt: 561862570
net.inet.ip.dummynet.queue_count: 0
net.inet.ip.dummynet.fsk_count: 30
net.inet.ip.dummynet.si_count: 1002
net.inet.ip.dummynet.schk_count: 60
net.inet.ip.dummynet.tick_lost: 0
net.inet.ip.dummynet.tick_diff: 30374
net.inet.ip.dummynet.tick_adjustment: 56758939
net.inet.ip.dummynet.tick_delta_sum: -88
net.inet.ip.dummynet.tick_delta: -200
net.inet.ip.dummynet.red_max_pkt_size: 1500
net.inet.ip.dummynet.red_avg_pkt_size: 512
net.inet.ip.dummynet.red_lookup_depth: 256
net.inet.ip.dummynet.expire_cycle: 0
net.inet.ip.dummynet.expire: 1
net.inet.ip.dummynet.debug: 0
net.inet.ip.dummynet.io_fast: 1
net.inet.ip.dummynet.pipe_byte_limit: 1048576
net.inet.ip.dummynet.pipe_slot_limit: 100
net.inet.ip.dummynet.hash_size: 65536
net.inet.ip.fw.curr_dyn_buckets: 256
net.inet.ip.fw.dyn_buckets: 131072

Поделиться сообщением


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

Добрый день.

 

Столкнулись с проблемой с IPFW3:

ipfw: setsockopt(IP_DUMMYNET_CONFIGURE): Cannot allocate memory

vmstat -z |grep NetGraph

что показывает в этот момент?

 

Поделиться сообщением


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

Добрый день.

 

Столкнулись с проблемой с IPFW3:

ipfw: setsockopt(IP_DUMMYNET_CONFIGURE): Cannot allocate memory

vmstat -z |grep NetGraph

что показывает в этот момент?

Попробуем, но, как я уже писал, при попытке что-либо ввести в консоли, сервер уходит в ребут.

Поделиться сообщением


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

А случайно нет ли на этой же машине ng_nat?

Поделиться сообщением


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

А случайно нет ли на этой же машине ng_nat?

Нет, на этом сервере делается только шейпинг.

Поделиться сообщением


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

А случайно нет ли на этой же машине ng_nat?

Нет, на этом сервере делается только шейпинг.

Тогда можно не смотреть. Обновляйтесь на всякий случай до Stable, включайте отладку и пытайтесь снять дампы. Если получится, пишите pr, если нет - пишите в freebsd-ipfw@. Может вам повезёт больше.

 

Поделиться сообщением


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

Может вам повезёт больше.

Это тоже наше сообщение :)

Поделиться сообщением


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

net.inet.ip.dummynet.hash_size: 65536

net.inet.ip.fw.dyn_buckets: 131072

Не многовато? imho можно смело уменьшить раз в 8.

Поделиться сообщением


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

Уменьшили, но поведение осталось таким же.

Т.е. когда в 3 ночи перезапускаем ipfw, количество памяти уменьшается.

 

Начало /etc/rc.firewall:

 

IPFW="/sbin/ipfw -fq"
$IPFW flush
$IPFW pipe flush
$IPFW queue flush
for tables in 1 2 3 4 5 6 7 8 10 11 20 21 40 41 80 81 120 121 122 123 110 111 112 113 42 43 44 45 46 47 48 49 50 51 52
do
    ipfw table "$tables" flush
done
...

Т.е. очищаем таблицы и перечитываем правила (в примере выше не показано).

Изменено пользователем G@riK

Поделиться сообщением


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

for tables in 1 2 3 4 5 6 7 8 10 11 20 21 40 41 80 81 120 121 122 123 110 111 112 113 42 43 44 45 46 47 48 49 50 51 52

do

ipfw table "$tables" flush

done

if [ -n "`ipfw table all list`" ]; then
ipfw table all flush
fi

не?

Поделиться сообщением


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

Похоже на мемлик, который недавно устранили :

http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/156083

 

Сам наткнулся на эту багу, а после патча все нормализовалось.

Поделиться сообщением


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

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.