Ядро

Матеріал з NoDeny
Версія від 22:42, 1 липня 2016, створена Sv (обговорення | внесок) (Новая страница: «NoDeny+ это не только веб-интерфейс. В фоне должны выполняться определенные действия, напри…»)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

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) может забирать много памяти и в сумме с другими модулями