Название: noserver потребляет много памяти Отправлено: Efendy от 20 Марта 2021, 14:26:32 Мне тут сообщили о проблемке, что noserver может потреблять много памяти. Я вспомнил, что когда-то причину этого я вычислил. Но не вспомнил сообщил ли об этом в форуме. Может сообщил и может это сообщение дубликат... В общем, ничего срашного, если будет повторение.
noserver по умолчанию хранит в оперативной памяти данные по трафику каждого юзера за каждый срез в течении последних 12 часов - вот причина. Это очень много данных. Например, если сразы трафика идут каждую минуту, то за 12 часов это 720 значений трафика только на одного абона. А если их 1000, то уже 720 тысяч и т.д. Все это усугубляется тем, что трафик хранится даже для тех абонентов, которые не обслуживаются noserver. Это косяк, понятно. А вот нафига ноусервер хранит трафик со срезами? Все из-за такой фишки как "скрипты" в услугах. Там есть возможность в зависимости от трафика за определенный период времени регулировать скорость абоненту. Ну, например, если за последний час средняя скорость у абонента 50 мегабит, то скороее всего (не флудим, так было раньше) это большая нагрузка на сеть и есть смысл подрезать на время ему скорость. В таких приемах есть смысл если брать большие интервалы времени. Но эти интервалы времени не фиксируются и могут в скриптах выбираться любые. Короче, из-за этого алгоритма приходится хранитьт трафик со срезами. Это большие данные. Если вы не юзаете скрипты или не юзаете фишку, связанную с трафком, или же используете максимальный период времени гораздо меньше 12 часов, то эту фичу стоит либо отключить либо уменьшить интервал времени. В next я сделаю это настраиваемым, а сейчас есть смысл в noserver.pl либо отключить (комментируем): Код: # Сбор общего трафика каждого клиента Код: # Храним статистику за последние 12 часов Название: Re: noserver потребляет много памяти Отправлено: tom от 20 Марта 2021, 15:23:56 Можливо це проявляється тільки на Debian, на FreeBSD може не проявлятися. І при запуску модулья CoA
Название: Re: noserver потребляет много памяти Отправлено: Cell от 20 Марта 2021, 20:00:30 Полезная инфа. В копилку.
Название: Re: noserver потребляет много памяти Отправлено: mitya0208 от 24 Октября 2021, 08:41:34 С ростом общего количества абонентов заметил что noserver начал скачкообразно грузить CPU. Такая картина наблюдается на всех сателлитах:
Код: 1775 v0- S 25:50,20 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=dhcp -d Код: last pid: 21811; load averages: 0,97, 0,70, 0,63 Думаю это как-то связанно: Код: ipfw pipe show > pipe.log По факту, на данный момент, через этот сателлит бежит порядка 150 абонентов и ±200 Мбит трафика (сколько особо значения не имеет). В перспективе это накладывает ограничения на горизонтальный рост. Возможно его научить работать только с теми сетями которые есть на конкретном сателлите? Или мой вывод по этому поводу не верный? PS: Можно конечно забить и не париться :) Особо не напрягает. Название: Re: noserver потребляет много памяти Отправлено: Efendy от 24 Октября 2021, 17:57:59 В cfg/noserver.cfg.pm есть параметр
Код: $ip_tags = ''; # обрабатывать ip только с этим тегом может он поможет Название: Re: noserver потребляет много памяти Отправлено: mitya0208 от 26 Октября 2021, 06:09:14 Присваиваю тег nas01 подсети 172.16.180.0/22:
Код: 172.16.180.11 Динамический nas01 Изменить Удалить Код: cat /usr/local/nodeny/cfg/noserver.cfg.pm Код: ps -ax | grep no Код: ipfw table 41 list | wc -l Код: ipfw table 41 list | grep -e 16.180 -e 16.181 -e 16.182 -e 16.183 | wc -l Код: svn info Код: uname -a Код: pkg info | grep perl Что я делаю не так? Название: Re: noserver потребляет много памяти Отправлено: cojiict от 28 Октября 2021, 08:10:50 Можливо потрібен рестарт ядра і модулів?
Название: Re: noserver потребляет много памяти Отправлено: Efendy от 28 Октября 2021, 15:47:32 Не. Ядро не надо рестартовать, только noserver, но по его логам видно что он рестартовал.
Вообще, я в последний раз влазил в noserver и ipfw черт знает когда и уже нифига не помню. Для начала надо запустить noserver с ключем -v, тогда он покажет что он делает. В первую очередь надо выудить sql, в котором будет (и будет ли) nas01. Посмореть что там выбралось, сколько строк. Код: ipfw table 41 list | grep -e 16.180 -e 16.181 -e 16.182 -e 16.183 | wc -l |