Страница 1 из 1

Ограничение на одновременные звонки

Добавлено: 16 ноя 2010, 17:55
disant
Добрый день, занимаюсь нагрузочным тестированием.

стоит задача сформировать нагрузку на тестируемую систему в виде большого количества одновременных звонков, генерируемых с помощью asterisk - с помощью *.call файлов, соответственно. (установлен под linux suse)

столкнулся с проблемой следующего характера:
астериск не справляется с выполнением более 200 звонков одновременно и падает. выдает ошибки с советами типа: try increasing max file descriptors with ulimit -n
пробовал изменить ulimit -n в консоли астериска, пробовал в консоли линукса, также изменял файл /etc/security/limits.conf
никаких результатов это не принесло, возможно есть какой-то выход из этого положения?

заранее благодарю за совет

Re: Ограничение на одновременные звонки

Добавлено: 17 ноя 2010, 12:52
ded
Подобное тестирование проводилось на двух серверах, соединённых для теста по Е1 (PRI) и по SIP в локальной сети, один из которых являлся оригинатором вызовов, второй - терминатором. Все вызовы терминировались на Musc on hold. Для теста использовался модифицированный дистрибутив TrixBox 2.8, стало быть
Linux trixbox1.localdomain 2.6.18-164.11.1.el5 #1 SMP
Asterisk 1.6.0.26-FONCORE-r78

Соединения оригинировались с помошью call файлов, которые вбрасывались в /var/spool/asterisk/outgoing/
Тестируемый сервер - HP Proliant DL140 - Xeon E5310 - 1,6 Ghz per CPU, 4 GB RAM

Качество соединений мониторилось субъективно, прослушивая MoH в одном из вызовов, также мониторилась командная строка обоих серверов.
По итогам теста: терминирующий сервер легко держал нагрузку в 920 одновременных вызовов (30 по DAHDI, остальные SIP ulaw), оригинирующий сервер начал сбоить при достижении вызовов свыше 900, так как имел скромные аппаратные ресурсы.
Для полноценного тестирования скорее всего надо воспроизвести схему ЗВЕЗДА, при которой несколько оригинаторов будут нагружать тестируемый сервер в центре. Таким же образом было достигнут рекорд в 10 000 одновременных соединений по SIP в прошлом году.

Re: Ограничение на одновременные звонки

Добавлено: 17 ноя 2010, 14:55
disant
Дело в том, что при >200 одновременных звонков падает не сервер, создающий нагрузку, а отрубается сам *. Сервер с *, создающий нагрузку, и тестируемая система соединены по протоколу h323.
Имеет ли это какое-либо значение в плане максимально возможного количества одноверменных вызовов?

Возможность использование нескольких серверов с * обдумывалась, но такого решения хотелось бы избежать и обойтись 1 сервером, тем более, как Вы пишете - можно и до 900 звонков одновременно организовать, и * не рухнет.
Возможно есть какие-то настройки *, где можно это максимальное количество файлов увеличить? (ulimit -n пробовал)

вот, что выдает консоль астериска перед падением
-- Attempting call on H323/1111@**** for 1@Outbound:1 (Retry 1)

CLI>
WARNING: Channel allocation failed: Can't create alert pipe! Try increasing max file descriptors with ulimit -n

CLI>
WARNING: Unable to allocate channel structure

CLI>
NOTICE: Unable to request channel H323/1111@****

CLI>
NOTICE: Call failed to go through, reason (0) Call Failure (not BUSY, and not NO_ANSWER, maybe Circuit busy or down?)
CLI>
H323 Cleaner assert.cxx(108) PWLib Assertion fail: Function ::close failed, file tlibthrd.cxx, line 846, Erp

CLI>
Disconnected from Asterisk server
Executing last minute cleanups

Re: Ограничение на одновременные звонки

Добавлено: 17 ноя 2010, 15:16
ded
В первом сообщении - ни слова про Н323
(- разве это имеет какое-то значение?
- да, имеет.)

Видимо это связано только с допустимо открытым числом файлов? но может и с производительностью канала Н323

http://www.opennet.ru/man.shtml?topic=u ... &russian=0

Смотрите также файлы
/etc/asterisk/asterisk.conf
/etc/security/limits.conf