Ядро: відмінності між версіями

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку
(Новая страница: «NoDeny+ это не только веб-интерфейс. В фоне должны выполняться определенные действия, напри…»)
 
Немає опису редагування
Рядок 38: Рядок 38:
Здесь необходимо слегка описать как работает ядро. Ядро загружает модули и передает управление первому, когда первый закончил работу - второму, после второго - третьему, после последнего - снова первому и т.д. по кругу. Если какой-то из модулей затупит, другие модули вынуждены будут ждать пока томозящий модуль не закончит работу.
Здесь необходимо слегка описать как работает ядро. Ядро загружает модули и передает управление первому, когда первый закончил работу - второму, после второго - третьему, после последнего - снова первому и т.д. по кругу. Если какой-то из модулей затупит, другие модули вынуждены будут ждать пока томозящий модуль не закончит работу.


Да, есть модули, которые могут тормозить. Например, заглушка. По сути - это вебсервер, написанный на перл. Когда у заблокированного абонента(тов) запущено много програм, которые делают запросы по http, эти все запросы идут на заглушку, которая будет непрерывно отвечать на них и просто не даст время на выполнение других модулей.
Да, есть модули, которые могут тормозить. Например, заглушка. По сути - это вебсервер, написанный на перл. Когда у заблокированного абонента(тов) запущено много программ, которые делают запросы по http, эти все запросы идут на заглушку, которая будет непрерывно отвечать на них и просто не даст время на выполнение других модулей.


Также может забирать ресурсы модуль подсчета трафика, особенно если включена детализация. Более того, если в сети очень большие потоки трафика, то модуль подсчета трафика (collectors) может забирать много памяти и в сумме с другими модулями
Также может забирать ресурсы модуль подсчета трафика (collectors), особенно если включена детализация.
 
Поэтому такие модули (cap, collectors), которые требуют ресурсы, необходимо запускать отдельной копией ядра:
 
<syntaxhighlight lang="bash">
perl /usr/local/nodeny/nokernel.pl -m=collectors -d &
perl /usr/local/nodeny/nokernel.pl -m=cap -d &
</syntaxhighlight>
 
Главное не забыть:
* установить переменную run => 0 для этих модулей
* прописать в автозапуск в /etc/rc.local

Версія за 22:47, 1 липня 2016

NoDeny+ это не только веб-интерфейс. В фоне должны выполняться определенные действия, например, снятие абонплаты, подсчет трафика и т.д. Эти действия выполняет ядро биллинга: файл nokernel.pl

Ядро запускает модули, которые находятся в папке /usr/local/nodeny/kernel/. У каждого модуля есть конфигурационный файл с расширением cfg, в котором прописаны настройки, а также команда: следует или нет запускать данный модуль. Нет смысла запускать те модули, которые вам не нужны. В файле cfg за запуск отвечает переменная run, если она установлена в 1, то модуль запускается, если в 0 - нет:

run => 1,

Обратите внимание на структуру конфига: переменная => значение и в конце запятая.

Давайте получим список всех установленных модулей:

cd /usr/local/nodeny
perl nokernel.pl -L

YES напротив названия модуля означает, что модуль будет запускаться при старте ядра. Стартовать ядро необходимо так:

perl nokernel.pl -d &

Здесь мы запустили ядро вручную и при перезагрузке оно само не запустится, поэтому необходимо прописать его старт в автозагрузку:

echo '/usr/bin/perl /usr/local/nodeny/nokernel.pl -d &' >> /etc/rc.local

Если вы ставили по документации, то запуск в автозагрузке уже есть и лучше проверить, что нет дублирующего запуска:

cat /etc/rc.local

Если вдруг показало, что есть дубликат запуска nokernel.pl - удалите, но, внимание! На самом деле, допускается запуск нескольких ядер. Более того, иногда это необходимо.

Здесь необходимо слегка описать как работает ядро. Ядро загружает модули и передает управление первому, когда первый закончил работу - второму, после второго - третьему, после последнего - снова первому и т.д. по кругу. Если какой-то из модулей затупит, другие модули вынуждены будут ждать пока томозящий модуль не закончит работу.

Да, есть модули, которые могут тормозить. Например, заглушка. По сути - это вебсервер, написанный на перл. Когда у заблокированного абонента(тов) запущено много программ, которые делают запросы по http, эти все запросы идут на заглушку, которая будет непрерывно отвечать на них и просто не даст время на выполнение других модулей.

Также может забирать ресурсы модуль подсчета трафика (collectors), особенно если включена детализация.

Поэтому такие модули (cap, collectors), которые требуют ресурсы, необходимо запускать отдельной копией ядра:

perl /usr/local/nodeny/nokernel.pl -m=collectors -d &
perl /usr/local/nodeny/nokernel.pl -m=cap -d &

Главное не забыть:

  • установить переменную run => 0 для этих модулей
  • прописать в автозапуск в /etc/rc.local