Mechanic Опубликовано 11 января, 2010 · Жалоба перенос: не оч хочется открывать в сетку резолв адресов, а ставить отдельную машинку под днс, что-то накладно. изменил объем памяти для приложений, пересобрад named-9-6-1, но все равно временами вылезает ошибка: Jan 10 22:04:57 vpn1 named[69224]: internal_send: 172.17.19.146#2049: Cannot allocate memoryJan 10 22:04:57 vpn1 named[69224]: client 172.17.19.146#2049: error sending response: out of memory Jan 10 22:05:25 vpn1 named[69224]: client 172.17.23.135#2056: RFC 1918 response from Internet for 100.0.168.192.in-addr.arpa Jan 10 22:06:00 vpn1 named[69224]: socket.c:1689: unexpected error: Jan 10 22:06:00 vpn1 named[69224]: internal_send: 91.199.115.182#4109: Cannot allocate memory Jan 10 22:06:00 vpn1 named[69224]: client 91.199.115.182#4109: error sending response: out of memory Jan 10 22:06:00 vpn1 named[69224]: socket.c:1689: unexpected error: Jan 10 22:06:00 vpn1 named[69224]: internal_send: 172.17.2.145#2059: Cannot allocate memory Jan 10 22:06:00 vpn1 named[69224]: client 172.17.2.145#2059: error sending response: out of memory Jan 10 22:06:07 vpn1 named[69224]: socket.c:1689: unexpected error: Jan 10 22:06:07 vpn1 named[69224]: internal_send: 172.17.30.96#63618: Cannot allocate memory хотя при этом в системе ресурсы распределны :last pid: 58317; load averages: 1.41, 1.28, 1.19 up 1+09:47:01 14:57:59116 processes: 4 running, 85 sleeping, 27 waiting CPU: 2.8% user, 0.0% nice, 62.9% system, 10.9% interrupt, 23.4% idle Mem: 169M Active, 355M Inact, 315M Wired, 240K Cache, 199M Buf, 1114M Free Swap: 5120M Total, 5120M Free PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND 2 root -68 - 0K 8K sleep 1 637:20 48.19% ng_queue0 3 root -68 - 0K 8K RUN 0 638:00 45.46% ng_queue1 12 root 171 ki31 0K 8K RUN 0 728:14 31.05% idle: cpu0 39 root -68 - 0K 8K - 1 213:38 18.26% em0 taskq 861 root 54 0 40696K 32164K select 0 120:56 15.28% mpd5 28 root -68 - 0K 8K WAIT 0 162:01 11.28% irq258: igb0 29 root -68 - 0K 8K WAIT 1 146:51 6.49% irq259: igb0 11 root 171 ki31 0K 8K CPU1 1 800:09 5.18% idle: cpu1 31 root -68 - 0K 8K - 0 60:31 0.98% igb0 taskq 14 root -32 - 0K 8K WAIT 0 33:20 0.59% swi4: clock sio 65 root 20 - 0K 8K syncer 1 1:14 0.10% syncer 59 root -68 - 0K 8K - 0 443:47 0.00% dummynet объем свободной памяти не уменьшается ниже 1.3гига (всего стоит 2гига) под приложения выделено 1 гиг /boot/loader.conf kern.maxdsiz=1073741824kern.dfldsiz=1073741824 kern.maxssiz=134217728 Как конкретномуц приложению отдать больше ресурсов ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vasaf Опубликовано 28 июня, 2010 · Жалоба Не знаю, нормальны ли вот тут ошибки. NetGraph data items: 36, 546, 2, 544, 50051448421, 24456243 Линков, стоящих "в полке" нет случайно? Или может named шейпится? ;) Наткнулся на этот пост пока искал как решить свою аналогичную проблему. И тут дело скорее всего как раз в этой строке что Вы указали. Скорее всего, т.к. я еще проверяю. Проблема скорее всего как раз в том, что пакеты named попадают в созданные Вами ноды netgraph, т.е. если Вы к примеру сделаете так: ipfw add 1 allow all from DNS_SERVER 53 to me ipfw add 1 allow all from me to DNS_SERVER 53 пример тупой, главное суть. Если так прописать, то сообщения: cannot allocate memory - пропадут. Аналогично хочу сказать, что если у Вас icmp пакеты от Вашего сервака наружу также проходят ноды netgraph, то при команде: ping -f -c 1000 ya.ru вы увидите теже самые "cannot allocate memory". Т.о. это творится не только с named. Теперь про Ваш vmstat -z и ту строку: Вы упираетесь в ограничения 546. А то что на Вашем выводе столбик FREE на данной позиции указывает на свободные почти все 544 единицы этого самого "NetGraph data items", то это связано с очень быстрым изменением данного параметра, попробуйте много раз подряд вывод команды: vmstat -z | grep Graph Регулируется эта штука значением: sysctl -w net.graph.maxdata , которую вы не тюнинговали, судя по Вашим приведенным листингам. sysctl -d net.graph.maxdata net.graph.maxdata: Maximum number of data queue items to allocate Итого: echo "net.graph.maxdata=4096" >> /boot/loader.conf Ребут. И тестить. ПС: Борюсь с той же траблой. По теме: http://forum.lissyara.su/viewtopic.php?f=8&t=26814 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
tux Опубликовано 7 июля, 2010 · Жалоба vasaf Имеется аналогичная проблема. vmstat -z говорит NetGraph data items: 72, 1044, 1038, 6, 23133453809, 18005994 сейчас у меня net.graph.maxdata = 1024 после прочтения Вашего поста думаю увеличить до 4096 помогло-ли Вам увеличение параметра net.graph.maxdata ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vasaf Опубликовано 8 июля, 2010 · Жалоба пока еще тестю, жду пока все оператива не перейдет в Inactive, т.к. возможно именно в этот момент у меня появлялись проблемы... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
tux Опубликовано 9 июля, 2010 · Жалоба Установил net.graph.maxdata=4096. ошибки исчезли. NetGraph data items: 72, 4118, 5, 4055, 5788684749, 0 Пока смотрим, если что объявиться отпишусь Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vasaf Опубликовано 12 июля, 2010 · Жалоба Как я и предположил... ОС FreeBSD 8.0 Подобная проблема у меня возникает тогда, когда почти вся память на сервере переходит в состояние Inactive и Free памяти остается немного (у меня порядка 100МБ). Освобождение Inactive памяти принудительно при помощи программки (она заполняет нулями 1ГБ Inactive gамяти, что позволяет перевести 1ГБ в состоние Free): #include <stdlib.h> #include <string.h> #include <unistd.h> int main(int argc, char** argv) { size_t s = 1024*1024*1024; /* 1 GB */ void* p = malloc(s); memset(p, 0, s); /*sleep(20);*/ free(p); return 0; } возвращает сервер в нормальный режим работы без потери пинга, без появления сообщений "cannot allocate memory" и без появления FAILUERS "NetGraph data items". ВОПРОС: Это баг? Почему может сервак не освобождать Inactive память сам? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Сильвер Опубликовано 13 июля, 2010 · Жалоба Как я и предположил...ОС FreeBSD 8.0 s/ng_nat/ipfw nat Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vasaf Опубликовано 13 июля, 2010 · Жалоба Как я и предположил...ОС FreeBSD 8.0 s/ng_nat/ipfw nat немного не понял... Я юзаю ng_nat ноду если вы об этом. Могу привести полную схему используемых нод. Но эту схему я использую уже несколько лет начиная с FreeBSD6.4. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Сильвер Опубликовано 14 июля, 2010 · Жалоба Как я и предположил...ОС FreeBSD 8.0 s/ng_nat/ipfw nat немного не понял... Я юзаю ng_nat ноду если вы об этом. Могу привести полную схему используемых нод. Но эту схему я использую уже несколько лет начиная с FreeBSD6.4. Я немного не уверен, что проблемы именно из-за перетекания памяти в Inactive. Сам похожее наблюдаю и проблема лечится убиранием правила add 30 netgraph 61 all from any to any via ext_if1 in Попробуйте перевести схему на ipfw nat. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vasaf Опубликовано 14 июля, 2010 · Жалоба Можно сказать у меня подобное правило имеется... Но все же, на фряхе 6.4, на 7.2 все работало... Если использовать ipfw nat, то у меня не получилось настройки фаер так, чтобы на одном ИПе мог натится инет и подключения с данного сервера, т.е. правило: ipfw add ... nat ... all from any to ${my_ext_ip} in recv ${ext_iface} - отбрасывало соединения для ИПа ${my_ext_ip}, но работал нат для юзеров. Надеюсь что понятно объяснил, если нет, опишу еще подробнее. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...