Ядро: відмінності між версіями
Sv (обговорення | внесок) (Новая страница: «NoDeny+ это не только веб-интерфейс. В фоне должны выполняться определенные действия, напри…») |
Sv (обговорення | внесок) Немає опису редагування |
||
Рядок 38: | Рядок 38: | ||
Здесь необходимо слегка описать как работает ядро. Ядро загружает модули и передает управление первому, когда первый закончил работу - второму, после второго - третьему, после последнего - снова первому и т.д. по кругу. Если какой-то из модулей затупит, другие модули вынуждены будут ждать пока томозящий модуль не закончит работу. | Здесь необходимо слегка описать как работает ядро. Ядро загружает модули и передает управление первому, когда первый закончил работу - второму, после второго - третьему, после последнего - снова первому и т.д. по кругу. Если какой-то из модулей затупит, другие модули вынуждены будут ждать пока томозящий модуль не закончит работу. | ||
Да, есть модули, которые могут тормозить. Например, заглушка. По сути - это вебсервер, написанный на перл. Когда у заблокированного абонента(тов) запущено много | Да, есть модули, которые могут тормозить. Например, заглушка. По сути - это вебсервер, написанный на перл. Когда у заблокированного абонента(тов) запущено много программ, которые делают запросы по http, эти все запросы идут на заглушку, которая будет непрерывно отвечать на них и просто не даст время на выполнение других модулей. | ||
Также может забирать ресурсы модуль подсчета трафика, особенно если включена детализация. | Также может забирать ресурсы модуль подсчета трафика (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