Биллинговая система Nodeny
11 Мая 2024, 19:03:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Заглушка загружует ядро в 100%  (Прочитано 5101 раз)
SeMant
NoDeny
Старожил
*

Карма: 4
Offline Offline

Сообщений: 266



Просмотр профиля Email
« : 11 Апреля 2015, 12:50:58 »

 На всех Насах появилась проблема. Заглушка валит ядро процессора в 100% и начинают отваливатиься PPPoE соединения. Авторизации длятся по несколько минут.
 Ревизия билинга 291
 Версии фри 9.1-RELEASE и 10.1-STABLE
 Версии пёрла 5.16 и 5.18. Соответственно.
 В последнее время ничего дополнительно не ставилось и не настраивалось, только обновлялось существующее.
 
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #1 : 11 Апреля 2015, 16:18:53 »

значит много запросов на нее валит, посмотри, например по trafshow какой трафик идет на нее
Записан
Warlock
NoDeny
Старожил
*

Карма: 8
Offline Offline

Сообщений: 369


Просмотр профиля
« Ответ #2 : 11 Апреля 2015, 21:44:59 »

У меня на одном насе подобная прблемка. Как только подорожают модуль заглушки она начинает кушать 45% проца. Это при том, что к этому серверу не подключен ни один пользователь...
Записан
SeMant
NoDeny
Старожил
*

Карма: 4
Offline Offline

Сообщений: 266



Просмотр профиля Email
« Ответ #3 : 15 Апреля 2015, 09:44:48 »

значит много запросов на нее валит, посмотри, например по trafshow какой трафик идет на нее
по какой сетевой смотреть, или Я что-то не понял ?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #4 : 15 Апреля 2015, 23:32:11 »

значит много запросов на нее валит, посмотри, например по trafshow какой трафик идет на нее
по какой сетевой смотреть, или Я что-то не понял ?
я так понимаю, что на локальной заглушке (lo0) - на нее форвардятся пакеты
Записан
SeMant
NoDeny
Старожил
*

Карма: 4
Offline Offline

Сообщений: 266



Просмотр профиля Email
« Ответ #5 : 29 Мая 2015, 13:16:23 »

значит много запросов на нее валит, посмотри, например по trafshow какой трафик идет на нее
Валит http трафик разным моим абонентам.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #6 : 29 Мая 2015, 14:17:07 »

можно попробовать ограничить по потокам трафик на 80й порт с помощью pf
Записан
SeMant
NoDeny
Старожил
*

Карма: 4
Offline Offline

Сообщений: 266



Просмотр профиля Email
« Ответ #7 : 29 Мая 2015, 17:08:41 »

можно попробовать ограничить по потокам трафик на 80й порт с помощью pf
Подскажите так, а то не приходилось ранее ?
 
pass in quick on lo0 proto tcp from any to any port 80 keep state (source-track rule, max-src-states 2, max-src-nodes 100)
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #8 : 30 Мая 2015, 14:28:57 »

Сори, давно уже не админю
Записан
mitya0208
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 15


Просмотр профиля
« Ответ #9 : 15 Марта 2017, 12:44:10 »

Доброго времени суток!

Периодически виснет модуль заглушки (вынесен отдельным процессом). Если убить процесс и запустить заново 10-14 дней работает нормально потом опять начинает подвисать. При детальном исследовании заметил:

Код:
ps -ax | grep no
  870 v0- R     31529:12,47 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=cap -d

Код:
 870 root        98    0 79576K 28520K CPU4    4 525.1H  90.58% perl{perl}

На локальном интерфейсе пусто:
Код:
tcpdump -i lo0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo0, link-type NULL (BSD loopback), capture size 65535 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel

Код:
tcpdump dst 127.0.0.1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on em0, link-type EN10MB (Ethernet), capture size 65535 bytes
^C
0 packets captured
86462 packets received by filter
0 packets dropped by kernel

Все это  происходит на 2 NAS серверах. Все остальные процессы нервно курят в сторонке.

Версия nodeny:

Код:
Revision: 400
Node Kind: directory
Schedule: normal
Last Changed Author: sv
Last Changed Rev: 400
Last Changed Date: 2016-03-21 13:57:15 +0200 (пн, 21 мар 2016)

Общий трафик на сервере 400-500 Мбит.

Код:
ps -ax | grep no
  870 v0- R     31536:29,05 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=cap -d
  871 v0- S       351:03,89 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=dhcp -d
  872 v0- S      1879:18,79 /usr/bin/perl /usr/local/nodeny/noserver.pl -d

Код:
871 root        20    0 60900K 14068K select  1 351:04   0.00% perl
872 root        21    0   231M   187M sbwait  7  31.3H   1.95% perl
0 root       -92    -     0K   304K CPU1    1 123.7H  11.57% kernel{em0 que}
893 root        20  -15 47072K 28684K sbwait  4 156.2H   9.86% ipcad{ipcad}
0 root       -92    -     0K   304K -       2 102.6H   8.50% kernel{em1 que}

Код:
sysctl -a | egrep -i 'hw.machine|hw.model|hw.ncpu'
hw.machine: amd64
hw.model: Intel(R) Xeon(R) CPU           E5420  @ 2.50GHz
hw.ncpu: 8
hw.machine_arch: amd64

Получается самый ресурсоемкий процесс именно заглушка, при том что на нее особо ничего не валиться. Такая ситуация  - это нормально или надо куда-то смотреть? Возможно это и есть причина подвисания процесса?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #10 : 15 Марта 2017, 13:25:24 »

forward не меняет dst в пакетах, поэтому tcpdump фильтр не отловит  dst 127.0.0.1, вполне возможно что на заглушку валит хороший трафик, можно посмотреть запустив ее с ключем -v

Заглушка выполняет роль вебсервера, но это не вебсервер - это скрипт, который предназначен для обработки небольшого количества запросов.  По хорошему, на заглушку надо ограничивать трафик по количеству пакетов на один ip - я в форуме писал как это сделать, лом искать
Записан
mitya0208
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 15


Просмотр профиля
« Ответ #11 : 15 Марта 2017, 15:16:15 »

Если вы имеете ввиду вот это:

Цитировать
pass in quick on lo0 proto tcp from any to any port 80 keep state (source-track rule, max-src-states 2, max-src-nodes 100)

то пробовал. Результат не меняется.

Запустил заглушку с ключиком -v:
1 NAS - за минуту 5 запросов
2 NAS - вообще тихо

Получается что она в режиме простоя нагружает проц.

На основном сервере (конфигурация одинаковая с NAS, но там 500-600 Мбит трафика) все еще печальнее:

Код:
ps -ax | grep no
  972 v0- R     43194:04,99 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=cap -d

Код:
972 root       102    0 83652K  8100K CPU4    4 719.4H 100.00% perl{perl}

По количеству запросов почти тоже самое 7-8 запросов в минуту.

Куда еще можно глянуть на эту тему?
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1227

In LAN we trust!

358714596
Просмотр профиля
« Ответ #12 : 19 Марта 2017, 20:20:59 »

вместо заглушки использовать nginx?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #13 : 20 Марта 2017, 12:27:49 »

вместо заглушки использовать nginx?
Кстати да, все что нужно - это отредиректить на другой урл. Конфиг дашь?
Записан
Pa4ka
Старожил
****

Карма: 4
Offline Offline

Сообщений: 281

591884591
Просмотр профиля Email
« Ответ #14 : 20 Марта 2017, 13:00:42 »

вместо заглушки использовать nginx?
Кстати да, все что нужно - это отредиректить на другой урл. Конфиг дашь?
Если нужно у меня есть небольшой работающий конфиг.
У меня на NASе с accel-ом прямо на URL заглушки так:
Цитировать
#Конфиг сервера nginx файл nginx.conf
user                www-data    www-data;

worker_processes    8;    # указать текущее количество ядер процессора
worker_priority     -20;

pid /var/run/nginx.pid;

error_log  /home/var/log/nginx/error.log  warn;

events {
    worker_connections              1024;
    accept_mutex                    on;
    multi_accept                    on;
}

http {
    include         /etc/nginx/mime.types;
    default_type    application/octet-stream;
    reset_timedout_connection       on;
    server_tokens                   off;
    log_format                      main            '$remote_addr - [$time_local] '
                                                    '$host "$request" $status $bytes_sent '
                                                    '"$http_referer" "$http_user_agent" '
                                                    '"$gzip_ratio" $upstream_response_time';
    sendfile                        on;
    tcp_nopush                      on;
    tcp_nodelay                     on;
    keepalive_timeout               0;
    client_max_body_size            512m;
    server_names_hash_max_size      1024;
    server_names_hash_bucket_size   128;
    port_in_redirect                off;
    gzip                            on;
    gzip_vary                       on;
    gzip_min_length                 1024;
    gzip_buffers                    16 8k;
    gzip_comp_level                 5;
    gzip_http_version               1.0;
    gzip_proxied                    any;
    gzip_disable                    "msie6";
    gzip_types                      text/plain text/css application/x-javascript text/xml
                                    application/xml application/xml+rss text/javascript
                                    text/json;
    fastcgi_temp_path               /var/cache/nginx/temp/fastcgi;
    proxy_temp_path                 /var/cache/nginx/temp/proxy;
    charset                         utf-8;
    index                           index.php index.html index.htm;
    access_log                      off;
    error_log                       /dev/null;
    set_real_ip_from                ТУТ_РЕАЛЬНЫЙ ИП СЕРВЕРА;  # указать "честный" IP сервера
    real_ip_header                  X-Real-IP;
    include                         /etc/nginx/sites-enabled/*; #Путь к конфигам сайта
}

Цитировать
#Где конфиг лежит и сам файл
#..nginx/site-available/example.com

server {
        listen       8001;
        server_name  localhost;

        #charset koi8-r;

        access_log /home/var/log/nginx/redirect.access.log;


        location / {
            if ( $http_user_agent ~ ^uTorrent ) {
                            return 404;
            }
            if ( $http_user_agent ~ Windows-Update-Agent ) {
                            return 404;
            }
            if ( $http_user_agent ~ "Microsoft NCSI" ) {
                            return 404;
            }
            if ( $http_user_agent ~ "ESS Update" ) {
                            return 404;
            }
            if ( $http_user_agent ~ "Google Update" ) {
                            return 404;
            }
            if ( $http_user_agent ~ "Microsoft-CryptoAPI" ) {
                            return 404;
            }
            if ( $http_user_agent ~ "Microsoft BITS" ) {
                            return 404;
            }
            if ( $http_user_agent ~ MSDW ) {
                            return 404;
            }
            if ( $http_user_agent ~ ^SeaPort ) {
                            return 404;
            }
            if ( $http_user_agent ~ ^Windows-Media-Player ) {
                            return 404;
            }
            if ( $http_user_agent ~ "Google Update" ) {
                            return 404;
            }
            if ( $http_user_agent ~ ^GoogleEarth ) {
                            return 404;
            }
            if ( $http_user_agent ~ ^Skype ) {
                            return 404;
            }
            if ( $http_user_agent = "MailRuSputnik" ) {
                            return 404;
            }
            if ( $http_user_agent ~ ^Ya\.Online ) {
                            return 404;
            }
            if ( $http_user_agent ~ ^MRA ) {
                            return 404;
            }
            if ( $http_user_agent ~* ^MediaGet ) {
                            return 404;
            }
            if ( $http_user_agent ~ ^BTWebClient ) {
                            return 404;
            }
            # Avast updater
            if ( $http_user_agent ~ ^Syncer ) {
                            return 404;
            }
            # Trend Micro updater
            if ( $http_user_agent = "TMUFE" ) {
                            return 404;
            }
            if ( $http_user_agent ~ ^Akamai\ NetSession\ Interface ) {
                            return 404;
            }
            if ( $http_user_agent ~ ^VKSaver ) {
                            return 404;
            }
            if ( $http_user_agent ~ DrWebUpdate ) {
                            return 404;
            }
            if ( $http_user_agent = "" ) {
                            return 404;
            }
            if ( $host ~ geo\.kaspersky\.com ) {
                            return 404;
            }
            if ( $host ~ (su|download|webrep).*\.avast\.com ) {
                            return 404;
            }

            if ( $host = wi2geo.mobile.yandex.net ) {
                            return 404;
            }
            if ( $host ~ bar.*\.yandex\.ru ) {
                            return 404;
            }
            if ( $host ~ (ping|master)\d*\.(dyngate|teamviewer)\.com ) {
                            return 404;
            }
            if ( $host ~ sitecheck\d*\.opera\.com ) {
                            return 404;
            }
            if ( $host ~ (xml\.my|mailsputnik|maps)\.mail\.ru ) {
                            return 404;
            }
            if ( $host = onlineconfigservice.ubi.com ) {
                            return 404;
            }
            if ( $host = com-services.pandonetworks.com ) {
                            return 404;
            }
            if ( $host ~ ticno\.com ) {
                            return 404;
            }
            if ( $host ~ conduit ) {
                            return 404;
            }
            if ( $host ~ cbox\.ws ) {
                            return 404;
            }
            if ( $host ~ (pricelist|metrics)\.skype\.com ) {
                            return 404;
            }
            if ( $host = weather.service.msn.com ) {
                            return 404;
            }
            if ( $host = advstat.letitbit.net ) {
                            return 404;
            }
            if ( $host = skymonk.net ) {
                            return 404;
            }
            if ( $host ~ counter ) {
                            return 404;
            }
            if ( $host ~ pluraserver ) {
                            return 404;
            }
            if ( $host ~ apps.bittorrent.com ) {
                            return 404;
            }
            if ( $host ~ offers.bittorrent.com ) {
                            return 404;
            }
            if ( $host ~ tracker ) {
                            return 404;
            }
            if ( $request_uri ~* (update|feed|announce|rss|xml|json|oauth) ) {
                            return 404;
            }
            if ( $request_uri ~* (toolbar|suggest) ) {
                            return 404;
            }
            if ( $request_filename ~ \.(ico|gif|jpg|png) ) {
                            return 404;
            }
            if ( $request_filename ~ \.(css|xml|js|swf|flv) ) {
                            return 404;
            }
            if ( $request_filename ~ \.(crl|txt|cab|msi|jar) ) {
                            return 404;
            }
            if ( $host ~ norton ) {
                            return 404;
            }

            proxy_set_header    X-Real-IP       $remote_addr;
            #WORK if delete caps tmpl cache
            rewrite ^ хттп://КУДА_РЕДИРЕКТИТЬ/cgi-bin/cap.pl?url=хттп://$host$request_uri redirect;

        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
ну тут порт у меня 8001 так в фаерволе сделал я
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!