G@riK Опубликовано 3 марта, 2011 · Жалоба Добрый день. Столкнулись с проблемой с 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 часов утра перезапускается фаервол. Но как видно из графиков ниже, память все равно не освобождается и фаервол отрабатывает некорректно. Если перезапустить фаервол руками, то ничего не меняется. Помогает только перезагрузка системы. На графиках также видно, что память то свободная была, но почему-то ошибки о нехватке все равно продолжают сыпаться. В чем может быть причина такого поведения? Почему не освобождается память? Может у нас неправильно выставлены параметры в 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 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Сильвер Опубликовано 3 марта, 2011 · Жалоба Добрый день. Столкнулись с проблемой с IPFW3: ipfw: setsockopt(IP_DUMMYNET_CONFIGURE): Cannot allocate memory vmstat -z |grep NetGraph что показывает в этот момент? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
G@riK Опубликовано 3 марта, 2011 · Жалоба Добрый день. Столкнулись с проблемой с IPFW3: ipfw: setsockopt(IP_DUMMYNET_CONFIGURE): Cannot allocate memory vmstat -z |grep NetGraph что показывает в этот момент? Попробуем, но, как я уже писал, при попытке что-либо ввести в консоли, сервер уходит в ребут. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Сильвер Опубликовано 3 марта, 2011 · Жалоба А случайно нет ли на этой же машине ng_nat? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
G@riK Опубликовано 3 марта, 2011 · Жалоба А случайно нет ли на этой же машине ng_nat? Нет, на этом сервере делается только шейпинг. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Сильвер Опубликовано 4 марта, 2011 · Жалоба А случайно нет ли на этой же машине ng_nat? Нет, на этом сервере делается только шейпинг. Тогда можно не смотреть. Обновляйтесь на всякий случай до Stable, включайте отладку и пытайтесь снять дампы. Если получится, пишите pr, если нет - пишите в freebsd-ipfw@. Может вам повезёт больше. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
G@riK Опубликовано 4 марта, 2011 · Жалоба Может вам повезёт больше. Это тоже наше сообщение :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ilya Evseev Опубликовано 5 марта, 2011 · Жалоба net.inet.ip.dummynet.hash_size: 65536net.inet.ip.fw.dyn_buckets: 131072 Не многовато? imho можно смело уменьшить раз в 8. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
G@riK Опубликовано 15 марта, 2011 (изменено) · Жалоба Уменьшили, но поведение осталось таким же. Т.е. когда в 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 ... Т.е. очищаем таблицы и перечитываем правила (в примере выше не показано). Изменено 15 марта, 2011 пользователем G@riK Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
snark Опубликовано 1 апреля, 2011 · Жалоба 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 не? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
arni Опубликовано 6 апреля, 2011 · Жалоба Похоже на мемлик, который недавно устранили : http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/156083 Сам наткнулся на эту багу, а после патча все нормализовалось. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...