forum.bitel.ru
http://forum.bitel.ru/

Производительность Radius
http://forum.bitel.ru/viewtopic.php?f=19&t=8695
Страница 1 из 1

Автор:  Cromeshnic [ 19 ноя 2013, 08:45 ]
Заголовок сообщения:  Производительность Radius

Написал скриптик, который собирает статистику по radius.log (Dialup / Inet) - время обработки пакетов по типам.

Предлагаю помериться сравнить показатели. Можно также приложить описание своих серверов (как тут).

Скрипт radius_counters.sh :
Код:
#!/bin/sh
awk '
BEGIN {
        auth_sum=0;
        auth_cnt=0;
        auth_min=0;
        auth_max=0;
        start_sum=0;
        start_cnt=0;
        start_min=0;
        start_max=0;
        update_sum=0;
        update_cnt=0;
        update_min=0;
        update_max=0;
        stop_sum=0;
        stop_cnt=0;
        stop_min=0;
        stop_max=0;
};

{
        if($4>'0')
        {
                if($3=="auth:")
                {
                        auth_sum+=$4;
                        auth_cnt+='1';
                        if(auth_min=='0' || auth_min>$4){auth_min=$4};
                        if(auth_max<$4){auth_max=$4}
                };
                if($3=="start:")
                {
                        start_sum+=$4;
                        start_cnt+='1';
                        if(start_min=='0' || start_min>$4){start_min=$4};
                        if(start_max<$4){start_max=$4}
                };
                if($3=="update:")
                {
                        update_sum+=$4;
                        update_cnt+='1';
                        if(update_min=='0' || update_min>$4){update_min=$4};
                        if(update_max<$4){update_max=$4}
                };
                if($3=="stop:")
                {
                        stop_sum+=$4;
                        stop_cnt+='1';
                        if(stop_min=='0' || stop_min>$4){stop_min=$4};
                        if(stop_max<$4){stop_max=$4}
                }
        }
};

END{
        if(auth_cnt=='0'){auth_cnt='0.00001'};
        if(start_cnt=='0'){start_cnt='0.00001'};
        if(update_cnt=='0'){update_cnt='0.00001'};
        if(stop_cnt=='0'){stop_cnt='0.00001'};
        print "auth (avg / min / max [cnt]):\t" auth_sum/auth_cnt "\t/ " auth_min "\t/ " auth_max "\t[" int(auth_cnt) "]";
        print "start (avg / min / max [cnt]):\t" start_sum/start_cnt "\t/ " start_min "\t/ " start_max "\t[" int(start_cnt) "]";
        print "update (avg / min / max [cnt]):\t" update_sum/update_cnt "\t/ " update_min "\t/ " update_max "\t[" int(update_cnt) "]";
        print "stop (avg / min / max [cnt]):\t" stop_sum/stop_cnt "\t/ " stop_min "\t/ " stop_max "\t[" int(stop_cnt) "]";
}'


Запускаем:
Код:
>grep "Process time" /usr/local/BGRadiusPPPoE/log/radius.log | ~/radius_counters.sh
auth (avg / min / max [cnt]):   137.727 / 1     / 735   [33]
start (avg / min / max [cnt]):  53.8    / 11    / 149   [15]
update (avg / min / max [cnt]): 39.4887 / 9     / 356   [573]
stop (avg / min / max [cnt]):   89.2632 / 11    / 251   [19]

>grep "Process time" /usr/local/BGRadiusPPPOE-ISG/log/radius.log | ~/radius_counters.sh
auth (avg / min / max [cnt]):   207.556 / 77    / 471   [9]
start (avg / min / max [cnt]):  292.444 / 66    / 619   [9]
update (avg / min / max [cnt]): 294.388 / 27    / 1383  [1254]
stop (avg / min / max [cnt]):   966.286 / 400   / 1520  [7]

>grep "Process time" /usr/local/BGInetAccounting-VPN/log/radius.log | ~/radius_counters.sh
auth (avg / min / max [cnt]):   0       / 0     / 0     [0]
start (avg / min / max [cnt]):  0       / 0     / 0     [0]
update (avg / min / max [cnt]): 1.55341 / 1     / 1277  [15251]
stop (avg / min / max [cnt]):   0       / 0     / 0     [0]

>grep "Process time" /usr/local/BGInetAccess-VPN/log/radius.log | ~/radius_counters.sh
auth (avg / min / max [cnt]):   118.941 / 1     / 58513 [78238]
start (avg / min / max [cnt]):  0       / 0     / 0     [0]
update (avg / min / max [cnt]): 0       / 0     / 0     [0]
stop (avg / min / max [cnt]):   0       / 0     / 0     [0]


У меня всё довольно хреново, особенно в модулях Dialup - тормозит база.
Всё крутится на одной машине.
МуSQL 5.1.39-log.
два Intel Xeon 2Ghz
памяти 16G 10 рэйд на SAS 15 rpm 3.0 Gb/s

Думаем ставить Percona на отдельный сервак.
В связи с этим особенно интересно посмотреть статистику snark:)

Вложения:
radius_counters.zip [593 байт]
Скачиваний: 252

Автор:  skyb [ 19 ноя 2013, 11:00 ]
Заголовок сообщения:  Re: Производительность Radius

Код:
# grep "Process time" /usr/local/BGInetAccounting/log/radius.log | ./radius_counters.sh
auth (avg / min / max [cnt]):   0       / 0     / 0     [0]
start (avg / min / max [cnt]):  10.2719 / 5     / 18    [217]
update (avg / min / max [cnt]): 1.20487 / 1     / 21    [3036]
stop (avg / min / max [cnt]):   11.8974 / 4     / 266   [195]

Код:
# grep "Process time" /usr/local/BGInetAccess/log/radius.log | ./radius_counters.sh                                                                                                           
auth (avg / min / max [cnt]):   2.90616 / 1     / 215   [71001]                                                                                                                                               
start (avg / min / max [cnt]):  0       / 0     / 0     [0]                                                                                                                                                   
update (avg / min / max [cnt]): 0       / 0     / 0     [0]                                                                                                                                                   
stop (avg / min / max [cnt]):   0       / 0     / 0     [0]

вторые сутки в ночьную работаю , поясните чего я щас добыл?

Автор:  Cromeshnic [ 19 ноя 2013, 11:04 ]
Заголовок сообщения:  Re: Производительность Radius

skyb, это статистика по времени обработки радиус-пакетов в миллисекундах.
В radius.log парсятся строчки:

Код:
>grep "Process time" /usr/local/BGRadiusPPPOE/log/radius.log | tail -15
Process time stop: 60
Process time update: 195
Process time update: 195
Process time auth: 426
Process time auth: 340
Process time update: 60
Process time start: 37
Process time update: 9
Process time auth: 0
Process time update: 64
Process time update: 116
Process time update: 51
Process time update: 36
Process time update: 27
Process time update: 63

Автор:  aiwbend [ 19 ноя 2013, 11:21 ]
Заголовок сообщения:  Re: Производительность Radius

Цитата:
>grep "Process time" /usr/local/BGInetAccess/log/radius.log | /home/radius_counters.sh
auth (avg / min / max [cnt]): 30.2842 / 3 / 1651 [482]
start (avg / min / max [cnt]): 0 / 0 / 0 [0]
update (avg / min / max [cnt]): 0 / 0 / 0 [0]
stop (avg / min / max [cnt]): 0 / 0 / 0 [0]



Цитата:
>grep "Process time" /usr/local/BGInetAccounting/log/radius.log | /home/radius_counters.sh
auth (avg / min / max [cnt]): 0 / 0 / 0 [0]
start (avg / min / max [cnt]): 568.143 / 9 / 3327 [7]
update (avg / min / max [cnt]): 1.41974 / 1 / 829 [7631]
stop (avg / min / max [cnt]): 239.375 / 17 / 1512 [8]

Автор:  Cromeshnic [ 19 ноя 2013, 11:36 ]
Заголовок сообщения:  Re: Производительность Radius

aiwbend писал(а):
Цитата:
>
start (avg / min / max [cnt]): 568.143 / 9 / 3327 [7]
stop (avg / min / max [cnt]): 239.375 / 17 / 1512 [8]


О, а вот это интересно. 0,5 и 0,2 секунды на старт/стоп в Inet - не очень ок, имхо. Хотя статистика всего по 7 и 8 пакетам...
У вас как с БД дела обстоят, если не секрет?
Хотя это может быть из-за скриптов...
При массовой авторизации пакеты не теряются? При ежедневном фейковом разрыве сессий?

Автор:  Cromeshnic [ 19 ноя 2013, 11:44 ]
Заголовок сообщения:  Re: Производительность Radius

Кстати, в Inet меня очень радует обработка update за 1 мс - база вообще не используется, данные тарифицируются и пишутся периодически другими процессами.
Но даже при этом иногда есть задержки Update-ов. Скорее всего, когда update попадает на такую обработку connection-а воркером и ждёт какого-нибудь lock-а объекта. Больше объяснений не вижу.
Но это не проблема, вроде.
Вложение:
bginetacc.png
bginetacc.png [ 27.56 КБ | Просмотров: 7557 ]

Автор:  Phricker [ 19 ноя 2013, 11:46 ]
Заголовок сообщения:  Re: Производительность Radius

Лог 100 мб.
Тот который после перезапуска радиуса для включения собственно логов
Код:
[root@bgbilling log]# grep "Process time" ./radius.log.1 | /opt/dialup.sh
auth (avg / min / max [cnt]):   9.69675 / 1     / 671   [12356]
start (avg / min / max [cnt]):  9.88985 / 4     / 368   [1153]
update (avg / min / max [cnt]): 13.2222 / 1     / 887   [40234]
stop (avg / min / max [cnt]):   21.3868 / 1     / 394   [561]


Ну и второй который собрался уже во время работы (9:27-9:45)
Код:
[root@bgbilling log]# grep "Process time" ./radius.log.1 | /opt/dialup.sh
auth (avg / min / max [cnt]):   6.35259 / 1     / 720   [10474]
start (avg / min / max [cnt]):  8.03404 / 4     / 59    [940]
update (avg / min / max [cnt]): 10.8902 / 1     / 682   [41028]
stop (avg / min / max [cnt]):   19.0642 / 1     / 96    [592]

Автор:  aiwbend [ 19 ноя 2013, 14:45 ]
Заголовок сообщения:  Re: Производительность Radius

Cromeshnic писал(а):
aiwbend писал(а):
Цитата:
>
start (avg / min / max [cnt]): 568.143 / 9 / 3327 [7]
stop (avg / min / max [cnt]): 239.375 / 17 / 1512 [8]


О, а вот это интересно. 0,5 и 0,2 секунды на старт/стоп в Inet - не очень ок, имхо. Хотя статистика всего по 7 и 8 пакетам...
У вас как с БД дела обстоят, если не секрет?
Хотя это может быть из-за скриптов...
При массовой авторизации пакеты не теряются? При ежедневном фейковом разрыве сессий?


Время большое наверное из за того что пакеты отправляются на шейпер по его запросу а запрос он делает когда ему прилетает команда по snmp. У нас там карусель та еще.

БД вертится на тачке с биллингом, вроде работает все быстро)

При фейковом точно сказать не могу, врядли. а вот когда должников отключаем в начале месяца то бывает, и терялись только когда днем это руками делал, причину не выяснял. Написал аларм на поиск внешнего трафика на закрытых договорах, перебиваемся им пока. Конечно хотелось бы выяснить причину почему такое происходит, хоть и крайне редко.

Автор:  aiwbend [ 19 ноя 2013, 14:55 ]
Заголовок сообщения:  Re: Производительность Radius

сделал еще раз стало так

Цитата:
>/usr/local/BGInetAccounting/log/radius.log | /home/radius_counters.sh
auth (avg / min / max [cnt]): 0 / 0 / 0 [0]
start (avg / min / max [cnt]): 20.6667 / 8 / 26 [9]
update (avg / min / max [cnt]): 1.19687 / 1 / 317 [8371]
stop (avg / min / max [cnt]): 26.2222 / 17 / 32 [9]

Автор:  Phricker [ 19 ноя 2013, 15:51 ]
Заголовок сообщения:  Re: Производительность Radius

Обед. Кол-во сессий не увеличивалось особо.
Код:
[root@bgbilling log]# grep "Process time" ./radius.log.1 | /opt/dialup.sh
auth (avg / min / max [cnt]):   7.23619 / 1     / 598   [9704]
start (avg / min / max [cnt]):  9.12345 / 4     / 112   [1207]
update (avg / min / max [cnt]): 11.6311 / 1     / 728   [43577]
stop (avg / min / max [cnt]):   21.3769 / 1     / 616   [780]

Автор:  Akhmat [ 19 ноя 2013, 17:31 ]
Заголовок сообщения:  Re: Производительность Radius

Код:
grep "Process time" /usr/local/BGRadiusDialup/log/radius.log | ./radius_counters.sh
auth (avg / min / max [cnt]):   14.9371 / 1     / 246   [938]
start (avg / min / max [cnt]):  7.30743 / 3     / 50    [296]
update (avg / min / max [cnt]): 12.1326 / 1     / 489   [27001]
stop (avg / min / max [cnt]):   10.5156 / 3     / 92    [256]

5.6.13-log MySQL Community Server (GPL)
два хеона, 24 гб, райд1 сас

Автор:  Cromeshnic [ 19 ноя 2013, 19:25 ]
Заголовок сообщения:  Re: Производительность Radius

Akhmat, на одной машине все крутится?

Автор:  Akhmat [ 19 ноя 2013, 20:26 ]
Заголовок сообщения:  Re: Производительность Radius

нет, два одинаковых сервака. один мастер, другой репликация. радиусы всякие вертятся на сервере с репликацией, база, сервисы биллинга, на мастере. но при этом оба сервака готовы, в полуручном режиме тянуть полную нагрузку.
если конкретнее, то на мастере в папке /usr/local/bgserv есть настроенные папки для радиусов и всех остальных служб(которые не работают на мастере). если сломается сервер репликации, копирую эти папки на уровень выше, запускаю сервисы. на железках меняются адреса радиус/нетфлоу серверов. и все работает. Также и на сервере репликации.
т.е. если специалист на месте, восстановление сервисов после физической или другой поломки сервера займет минут 15-30. Такой перерыв при таком серьезном сбое всех устраивает.
А вообще любой из серваков с легкостью справляется с полной нагрузкой. но раз их два, то распределил...

с мастера
Код:
top - 18:25:25 up 44 days,  3:11,  3 users,  load average: 1.27, 0.83, 0.63
Tasks: 593 total,   1 running, 592 sleeping,   0 stopped,   0 zombie
Cpu0  : 30.7%us,  2.2%sy,  0.0%ni, 64.3%id,  0.8%wa,  0.0%hi,  2.0%si,  0.0%st
Cpu1  :  2.9%us,  0.2%sy,  0.0%ni, 96.7%id,  0.1%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2  :  1.8%us,  0.2%sy,  0.0%ni, 98.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu3  :  1.2%us,  0.1%sy,  0.0%ni, 98.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu4  :  0.8%us,  0.1%sy,  0.0%ni, 99.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu5  :  0.6%us,  0.1%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu6  :  2.1%us,  0.3%sy,  0.0%ni, 90.5%id,  7.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu7  :  0.7%us,  0.3%sy,  0.0%ni, 99.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu8  :  0.4%us,  0.1%sy,  0.0%ni, 99.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu9  :  0.2%us,  0.0%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu10 :  0.1%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu11 :  0.1%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu12 : 10.1%us,  1.0%sy,  0.0%ni, 88.3%id,  0.5%wa,  0.0%hi,  0.1%si,  0.0%st
Cpu13 :  0.5%us,  0.2%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu14 :  0.4%us,  0.1%sy,  0.0%ni, 99.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu15 :  0.2%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu16 :  0.1%us,  0.0%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu17 :  0.1%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu18 :  0.4%us,  0.2%sy,  0.0%ni, 98.6%id,  0.8%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu19 :  0.2%us,  0.1%sy,  0.0%ni, 99.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu20 :  0.2%us,  0.0%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu21 :  0.1%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu22 :  0.1%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu23 :  0.1%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  24727840k total, 22268220k used,  2459620k free,   160968k buffers
Swap: 24575992k total,   972340k used, 23603652k free,  4161660k cached


у тебя как организовано? отказоустойчивость

Автор:  Phricker [ 19 ноя 2013, 21:40 ]
Заголовок сообщения:  Re: Производительность Radius

Ну и вечерний "пиковый" лог
Код:
[root@bgbilling log]# grep "Process time" ./radius.log.1 | /opt/dialup.sh
auth (avg / min / max [cnt]):   8.2534  / 1     / 589   [8524]
start (avg / min / max [cnt]):  8.77914 / 1     / 280   [1064]
update (avg / min / max [cnt]): 12.0245 / 1     / 756   [49345]
stop (avg / min / max [cnt]):   20.2503 / 1     / 307   [871]

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/