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

nas сервер проблемы named произвольно валится сервер

перенос: не оч хочется открывать в сетку резолв адресов, а ставить отдельную машинку под днс, что-то накладно.

 

изменил объем памяти для приложений, пересобрад named-9-6-1, но все равно временами вылезает ошибка:

Jan 10 22:04:57 vpn1 named[69224]: internal_send: 172.17.19.146#2049: Cannot allocate memory

Jan 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:59

116 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=1073741824

kern.dfldsiz=1073741824

kern.maxssiz=134217728

 

Как конкретномуц приложению отдать больше ресурсов ?

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


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

Не знаю, нормальны ли вот тут ошибки.

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

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


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

vasaf

Имеется аналогичная проблема.

vmstat -z говорит

NetGraph data items: 72, 1044, 1038, 6, 23133453809, 18005994

сейчас у меня net.graph.maxdata = 1024 после прочтения Вашего поста думаю увеличить до 4096

 

помогло-ли Вам увеличение параметра net.graph.maxdata ?

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


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

пока еще тестю, жду пока все оператива не перейдет в Inactive, т.к. возможно именно в этот момент у меня появлялись проблемы...

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


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

Установил net.graph.maxdata=4096. ошибки исчезли.

NetGraph data items:       72,     4118,        5,     4055, 5788684749,        0

Пока смотрим, если что объявиться отпишусь

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


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

Как я и предположил...

ОС 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 память сам?

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


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

Как я и предположил...

ОС FreeBSD 8.0

s/ng_nat/ipfw nat

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


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

Как я и предположил...

ОС FreeBSD 8.0

s/ng_nat/ipfw nat

немного не понял...

Я юзаю ng_nat ноду если вы об этом. Могу привести полную схему используемых нод. Но эту схему я использую уже несколько лет начиная с FreeBSD6.4.

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


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

Как я и предположил...

ОС 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.

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


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

Можно сказать у меня подобное правило имеется...

Но все же, на фряхе 6.4, на 7.2 все работало...

Если использовать ipfw nat, то у меня не получилось настройки фаер так, чтобы на одном ИПе мог натится инет и подключения с данного сервера, т.е. правило:

ipfw add ... nat ... all from any to ${my_ext_ip} in recv ${ext_iface}

- отбрасывало соединения для ИПа ${my_ext_ip}, но работал нат для юзеров.

Надеюсь что понятно объяснил, если нет, опишу еще подробнее.

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


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

Join the conversation

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

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

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

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

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

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

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