BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 19 июн 2025, 04:52

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: [6.1] RadiusListener authentication queue is full!
СообщениеДобавлено: 09 сен 2015, 13:03 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Доброго времени суток.
Сегодня перегружали одну из цисок, и решили проверить как поведет себя радиус если оставить подключаться абонентов as is.
Собственно сразу же обнаружились проблемы в

Код:
access-requests per minute accept:
ignore per minute access-request:

Сразу после старта реквестов было ~15000, игноров в районе 13000.
При этом абоненты не подключались. Прождали минут 10 для теста (хе-хе) но ничего не изменилось.
Пришлось на циске обрубать интерфейсы и постепенно включать, чтобы радиус не "захлебнулся" запросами.

Как то можно подкрутить подобное, чтобы оно не возникало.

Код:
Java Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM [1.7.0_72] /usr/java/jdk1.7.0_72/jre
  Runtime name: 61648@bgbilling
  Java endorsed dirs: /lib/endorsed:/usr/java/default/lib/endorsed
  OS: Linux 2.6.32-358.6.1.el6.x86_64 [amd64], file.encoding: UTF-8, user.name: root
  Heap sizes: current=366080k  free=362250k  max=5430272k
Kernel version 6.1.1081 / 13.07.2015 18:42:19
Inet version 6.1.703 / 14.07.2015 21:51:17
Radius:
  accounting-requests per minute start: 0; stop: 0; update: 0
  access-requests per minute accept: 4203; reject: 70
  ignore per minute access-request: 73; accounting-update: 0
Antispam ban count: 1120; used per minute: 7073

Started: 09.09.2015 09:09:35    Uptime: 0 d 00:39:17
Memory total: 475 004 928; max: 2 863 661 056; free: 170 998 528
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 9 858 496; peek: 9 868 224
  Heap memory[PS Eden Space]: max: 1 063 780 352; used: 22 499 832; peek: 892 862 464
  Heap memory[PS Survivor Space]: max: 4 718 592; used: 1 441 792; peek: 69 532 520
  Heap memory[PS Old Gen]: max: 2 147 483 648; used: 280 069 928; peek: 387 075 728
  Non-heap memory[PS Perm Gen]: max: 536 870 912; used: 32 369 736; peek: 32 369 736
Thread count: 312
Trees in cache: 0
Connections pool to Master status Idle: 19; Active: 6; maxActive: 300; maxIdle: 20


Код:
<!-- Cоздание слушателя radius-пакетов на порту с передачей ему процессора и dataLogger -->
                <bean name="radiusListener" class="ru.bitel.bgbilling.modules.inet.radius.InetRadiusListener">
                        <constructor>
                                <!-- Хост (интерфейс), на котором будет открыт сокет. Если пусто - на всех -->
                                <param name="host" value=""/>
                                <!-- Порт, на котором будет открыт сокет -->
                                <param name="port" value="1820"/>
                                <!-- Размер буфера приема слушателя -->
                                <param name="recvBufferSize">512 * 1024</param>
                                <!-- Рекомендуемый SO_RCVBUF сокета -->
                                <param name="soRCVBUF"></param>
                                <!-- Количество потоков-обработчиков -->
                                <param name="threadCount">50</param>
                                <!-- Максимальное количество пакетов в очереди на обработку -->
                                <param name="maxQueueSize">700</param>
                                <!-- Передача процессора -->
                                <param name="processor">radiusProcessor</param>
                                <!-- Режим работы, RadiusListener.Mode.authentication -->
                                <param name="mode">RadiusListener.Mode.authentication</param>
                                <!-- Передача dataLogger -->
                                <param name="dataLogger">radiusDataLogger</param>
                        </constructor>
                </bean>


Текущий конфиг устройства Access+Accounting
Код:
access.group=1
accounting.deviceTypeIds=1
accounting.tariffication.checkPrice=1
accounting.worker.1.event.tracking.1.batchSize=0
accounting.worker.1.event.tracking.1.delay.millis=200
accounting.worker.1.serv.tracking.1.accountingPeriodActivate=1
accounting.worker.1.serv.tracking.1.batchSize=0
accounting.worker.1.serv.tracking.1.delay=30
accounting.worker.1.tariffication.1.batchSize=1000
accounting.worker.1.tariffication.1.delay=10
accounting.worker.1.tariffication.1.minDeltaAmount=104857600
accounting.worker.1.tariffication.2.batchSize=1000
accounting.worker.1.tariffication.2.delay=20
accounting.worker.1.tariffication.2.minDeltaAmount=10485760
accounting.worker.1.tariffication.3.batchSize=1000
accounting.worker.1.tariffication.3.delay=30
accounting.worker.1.tariffication.3.minDeltaAmount=0
accounting.worker.1.thread.count=3
accounting.worker.1.tracking.1.batchSize=1000
accounting.worker.1.tracking.1.delay=10
accounting.worker.2.flushing.1.batchSize=1000
accounting.worker.2.flushing.1.delay=30
accounting.worker.2.flushing.1.minDeltaAccount=0
accounting.worker.2.flushing.1.minDeltaAmount=0
accounting.worker.2.thread.count=1
accounting.worker.3.finishing.1.batchSize=5000
accounting.worker.3.finishing.1.delay=5
accounting.worker.3.thread.count=1
antispam.ban.time=900
antispam.key.attributes=User-Name,Calling-Station-Id
antispam.reject.count=2
antispam.reject.per.time=120
authError.async.maxQueueSize=5000
authError.async.timeout=50
authError.update=1
client.gui.expand.device.tree=0
connection.close.timeout=1300
connection.disable.close.timeout=1300
connection.disable.suspend.timeout=900
connection.finish.timeout=5
connection.start.fromAccept=1
connection.suspend.timeout=300
connector.http=127.0.0.1:8080
connector.https=*:8443
context.path=/bgbilling
contract.status.active.codes=0
contract.status.suspend.codes=2,3,4,5,6
db.maxActive=300
db.maxIdle=20
db.validationTimeout=10
deviceId=1611
nas.radius.deviceTypeIds=17,18
nas.radius.key.deviceTypeIds=2
port.admin=2005
radius.deviceTypeIds=17,18
radius.key.deviceTypeIds=2
session.split.onTariffOption=1


Понятно, что в принципе это нестандартная ситуация, но на будущее хотелось бы избежать подобного :)

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.1] RadiusListener authentication queue is full!
СообщениеДобавлено: 09 сен 2015, 15:03 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Сейчас иос откатили, и снова пришлось ребутнуть железку
Код:
Radius:
  accounting-requests per minute start: 0; stop: 0; update: 0
  access-requests per minute accept: 4538; reject: 8060
  ignore per minute access-request: 11726; accounting-update: 0
Antispam ban count: 1009; used per minute: 3532

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.1] RadiusListener authentication queue is full!
СообщениеДобавлено: 09 сен 2015, 15:05 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
В самом начале после ребута было
Код:
Radius:
  accounting-requests per minute start: 0; stop: 0; update: 0
  access-requests per minute accept: 1566; reject: 8183
  ignore per minute access-request: 20115; accounting-update: 0
Antispam ban count: 1080; used per minute: 1832

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.1] RadiusListener authentication queue is full!
СообщениеДобавлено: 09 сен 2015, 15:07 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
А сколько времени Cisco ждёт ответа на запрос?
Если через конфиг, то вроде только maxQueueSize уменьшить. Посмотрим сегодня таймауты.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.1] RadiusListener authentication queue is full!
СообщениеДобавлено: 09 сен 2015, 15:11 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Amir писал(а):
А сколько времени Cisco ждёт ответа на запрос?

Уточню...

В общем все пришло примерно к
Код:
Radius:
  accounting-requests per minute start: 0; stop: 0; update: 0
  access-requests per minute accept: 8743; reject: 215
  ignore per minute access-request: 6853; accounting-update: 0
Antispam ban count: 1047; used per minute: 6304

и скачет туда сюда по 1000-1500 :)
Снова начали рубить интерфейсы, чтобы уменьшить кол-во запросов.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.1] RadiusListener authentication queue is full!
СообщениеДобавлено: 09 сен 2015, 16:04 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
radius-server timeout стоит по умолчанию.
Значит 5 секунд.

и radius-server retransmit тоже дефолт. значит 3.

Имеет смысл изменить эти значения?

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.1] RadiusListener authentication queue is full!
СообщениеДобавлено: 09 сен 2015, 16:31 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Не совсем понятно - timeout=5, retransmit=3 - он новый пакет через 3 секунды ожидания пошлет или как?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.1] RadiusListener authentication queue is full!
СообщениеДобавлено: 09 сен 2015, 16:42 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
через 5 секунд не ответа пошлет пакет повторно.
И так 3 раза повторит
Если я правильно понял cisco.com :)

Это дефолтные настройки на циске.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.1] RadiusListener authentication queue is full!
СообщениеДобавлено: 09 сен 2015, 16:50 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Тут проблема в том что биллинг отвечает и отвечает в том числе на те пакеты, которые Cisco уже не примет, а Cisco уже и новые прислала по тому же абоненту.
Раньше таймаут для "старого" пакета у нас был 5 секунд, если очередь заполнена. 26 августа для 6.1 было обновление, сделали 1.8 секунд, если очередь уже почти заполнена.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.1] RadiusListener authentication queue is full!
СообщениеДобавлено: 09 сен 2015, 16:53 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
ок. пока timeout увеличим до 30.
Проверим.

И обновиться попробуем.

1.8 это значит что если очередь заполнилась - он старые пакеты не будет обрабатывать?

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.1] RadiusListener authentication queue is full!
СообщениеДобавлено: 09 сен 2015, 16:59 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Да - берет пакет из очереди, смотрит если очередь заполнена на ~ 8/10, а этот Access-Request был получен >1/8 секунд назад, то ничего с ним не делает, берет следующий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.1] RadiusListener authentication queue is full!
СообщениеДобавлено: 09 сен 2015, 17:06 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Хммм... Обновлюсь вечером, т.к. если проблема с циской не решится, ее ночью будут менять.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.1] RadiusListener authentication queue is full!
СообщениеДобавлено: 10 сен 2015, 05:17 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Было получше в начале
Код:
  access-requests per minute accept: 7079; reject: 113
  ignore per minute access-request: 0; accounting-update: 0

но потом
Код:
  access-requests per minute accept: 8522; reject: 292
  ignore per minute access-request: 11137; accounting-update: 0


Очередь я правда не уменьшал.
Но на циске поставили radius-server timeout 30


Так же положили часть линков, и сервер справился
Код:
  access-requests per minute accept: 3954; reject: 708
  ignore per minute access-request: 708; accounting-update: 0

прожевал очередь
Код:
  access-requests per minute accept: 874; reject: 405
  ignore per minute access-request: 0; accounting-update: 0


Подняли вторую часть линков
Код:
Java Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM [1.7.0_72] /usr/java/jdk1.7.0_72/jre
  Runtime name: 11493@bgbilling
  Java endorsed dirs: /lib/endorsed:/usr/java/default/lib/endorsed
  OS: Linux 2.6.32-358.6.1.el6.x86_64 [amd64], file.encoding: UTF-8, user.name: root
  Heap sizes: current=366080k  free=362250k  max=5430272k
Kernel version 6.1.1094 / 09.09.2015 18:00:20
Inet version 6.1.710 / 09.09.2015 18:00:48
Radius:
  accounting-requests per minute start: 0; stop: 0; update: 0
  access-requests per minute accept: 2869; reject: 424
  ignore per minute access-request: 0; accounting-update: 0
Antispam ban count: 964; used per minute: 6012

Started: 09.09.2015 17:45:08    Uptime: 0 d 08:28:49
Memory total: 433 586 176; max: 2 863 661 056; free: 86 713 248
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 10 708 096; peek: 10 712 384
  Heap memory[PS Eden Space]: max: 1 069 547 520; used: 9 893 760; peek: 900 202 496
  Heap memory[PS Survivor Space]: max: 2 097 152; used: 851 968; peek: 70 835 800
  Heap memory[PS Old Gen]: max: 2 147 483 648; used: 336 130 648; peek: 418 713 712
  Non-heap memory[PS Perm Gen]: max: 536 870 912; used: 32 576 120; peek: 32 576 120
Thread count: 308
Trees in cache: 0
Connections pool to Master status Idle: 19; Active: 3; maxActive: 300; maxIdle: 20


И затем третью (здесь максимум реквестов в минуту. потом стало падать. в игноре не было)
Код:
Radius:
  accounting-requests per minute start: 0; stop: 0; update: 0
  access-requests per minute accept: 4058; reject: 90
  ignore per minute access-request: 0; accounting-update: 0
Antispam ban count: 984; used per minute: 6291

Started: 09.09.2015 17:45:08    Uptime: 0 d 08:31:06
Memory total: 440 401 920; max: 2 863 661 056; free: 70 252 032
Memory pools:
  Non-heap memory[Code Cache]: max: 50 331 648; used: 10 727 424; peek: 10 728 704
  Heap memory[PS Eden Space]: max: 1 066 926 080; used: 13 550 144; peek: 900 202 496
  Heap memory[PS Survivor Space]: max: 3 145 728; used: 1 015 808; peek: 70 835 800
  Heap memory[PS Old Gen]: max: 2 147 483 648; used: 355 589 864; peek: 418 713 712
  Non-heap memory[PS Perm Gen]: max: 536 870 912; used: 32 576 448; peek: 32 576 448
Thread count: 310
Trees in cache: 0
Connections pool to Master status Idle: 19; Active: 4; maxActive: 300; maxIdle: 20

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: [6.1] RadiusListener authentication queue is full!
СообщениеДобавлено: 10 сен 2015, 05:25 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
ну и вернулся в строй
Код:
  access-requests per minute accept: 59; reject: 39
  ignore per minute access-request: 0; accounting-update: 0

при этом кол-во реквестов падает.

В принципе это нестандартная ситуация когда циска падает, так что очень редко повторяется подобное.
И в принципе понятно удивление радиуса когда на него сваливается 20к+ запросов на авторизацию :)
Но если надо подшаманить, усилить сервер и т.п. - надыть сделать.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.049s | 43 Queries | GZIP : On ]