Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Конфигурация и настройка / Нужны советы по оптимизации и увеличению производительности

Нужны советы по оптимизации и увеличению производительности

1 2>
Откуда: Новосибирск
Сообщений: 39

Нужны советы по оптимизации и увеличению производительности

В народе ходят слухи, что на asterisk возможно обрабатывать до 300 одновременных звонков.

Реально вижу следующую картину:

Сервер: Dual-Core AMD Opteron(tm) Processor 1218
память: 2х1Gb нерегистровая DDR2 работает в dual channel
МB: Tyan S2925 Tomcat n3400B
Потоковая E1 плата: Cronyx Tau-PCI/4E1

Сервер занимается терминацией VoIP по SIP в традиционку E1

При 55 одновременных звонках uptime за одну минуту показывает ~0.6 процессов в очереди. Значит, при достижении критического для производительности значения среднего количества процессов в очереди 1, должно держаться ~ 90 звонков.
Как бы повысить это значение до 120, а лучше до 150? Что можно потюнить в плане софта и апгрейда железа?
2008-04-15 12:45

Avatara of simax
Откуда: Нижний Новгород
Сообщений: 277

Re: Нужны советы по оптимизации и увеличению производительности

SIP то какой кодек пользует?
Памяти у Вас достаточно. С процессором все просто - чем мощней тем лучше.
Запускайте астериск с ключиком -p, это увеличит приоритет процесса. Как я понимаю будет достачно 120 одновременных звонков поскольку у Вас только 4 E1. Кстати не думаю что у Вас возникнут проблемы с терминацией 120 одновременных звонков в случае если пользуется G711 кодек. Я терминировал 92 канала (4xT1) на старом одно-процессорном Pentium 4 2400Mhz 512 Mb. Правда пользовал карту Digium TE405P. Также производительность сильно зависит от включенного inband DTMF detection (лучше выключить если не нужны inband DTMFы c E1, а со стороны SIPа пользуйте только telephone-events - rfc2833 ну или info если SIP агенты держат) и записи разговоров. Ну и поменьше логов.
2008-04-15 12:57

Avatara of litnimax
Откуда: Москва
Сообщений: 3421

Re: Нужны советы по оптимизации и увеличению производительности

При 55 одновременных звонках uptime за одну минуту показывает ~0.6 процессов в очереди. Значит, при достижении критического для производительности значения среднего количества процессов в очереди 1, должно держаться ~ 90 звонков.
Откуда у Вас информация о линейной зависимости между числом звонков и показателем average load?
300 звонков по VoIP далеко не предел, но у Вас стоит карта на 4E1, которая не зависимо от нагрузки (по идее) отбирает ресурсы.
Возьмите sipp, создайте 100, 150, 200 и тд звонков и звоните и эмпирически оценивайте качество, и нагрузку смотрите.
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2008-04-15 13:21

Откуда: Новосибирск
Сообщений: 39

Re: Нужны советы по оптимизации и увеличению производительности

simax:

SIP то какой кодек пользует?
Как я понимаю будет достачно 120 одновременных звонков поскольку у Вас только 4 E1.
Сервер работает ещё с несколькими sip гейтами и коммутирует sip-абонентские устройства, поэтому оптимальным значением было бы 150 звонков.

simax:

Кстати не думаю что у Вас возникнут проблемы с терминацией 120 одновременных звонков в случае если пользуется G711 кодек.
Да, его использую. g729 будет жрать больше проца?

simax:

Также производительность сильно зависит от включенного inband DTMF detection (лучше выключить если не нужны inband DTMFы c E1, а со стороны SIPа пользуйте только telephone-events - rfc2833 ну или info если SIP агенты держат) и записи разговоров.
Записей нет. Остальное уточню.
2008-04-15 13:39

Avatara of simax
Откуда: Нижний Новгород
Сообщений: 277

Re: Нужны советы по оптимизации и увеличению производительности

Larchen:

g729 будет жрать больше проца?
Намного если нет транскодера (специальной платы от Digium). Ну и без транскодера лицензия на пользования G729 стоит по моему 10$ за канал. Ну и если у Вас весь RTP идет по локалки или нет проблем с шириной канала то смысла в G729 нету - только качество голоса потеряете.
2008-04-15 13:43

Откуда: Новосибирск
Сообщений: 39

Re: Нужны советы по оптимизации и увеличению производительности

litnimax:

Откуда у Вас информация о линейной зависимости между числом звонков и показателем average load?
Предположение, за не имением более точной информации о характере зависимости :). Количество потоков процесса asterisk вроде бы растёт линейно с количеством звонков (по крайней мере, на известном мне интервале, судя по графикам cacti ).

litnimax:

300 звонков по VoIP далеко не предел, но у Вас стоит карта на 4E1, которая не зависимо от нагрузки (по идее) отбирает ресурсы.
Зависимость есть. Чем больше звонков, тем больше она генерит прерываний в секунду. А при какой конфигурации ПО и аппаратуры у Вас было 300 по VoIP?

litnimax:

Возьмите sipp, создайте 100, 150, 200 и тд звонков и звоните и эмпирически оценивайте качество, и нагрузку смотрите.


Не слышал раньше о sipp. Я попробую, но не так просто устраивать тесты на системе под коммерческой нагрузкой.
2008-04-15 13:55

Avatara of litnimax
Откуда: Москва
Сообщений: 3421

Re: Нужны советы по оптимизации и увеличению производительности

Посмотрите asterisk_V1-4-11_performance.htm
Также я когда-то описал как использовать sipp asteriskworld.ru/wiki/testing-asterisk-call-load-with-sipp.ru.
Зависимость есть. Чем больше звонков, тем больше она генерит прерываний в секунду. А при какой конфигурации ПО и аппаратуры у Вас было 300 по VoIP?

Я не инженер, но мне кажется плата считывает содержимое буфера каждого тайм-слота независимо от нагрузки. Таким образом всегда потребляя IRQ. Вы промониторьте /proc/interrupts... Вспомнил пример, где chan_ss7, ну очень realtime приложение, ругался на buffer underrun что-то типа того.
[Sep 19 22:30:49] NOTICE[25524] mtp.c: Excessive poll delay 5985!
[Sep 19 22:40:49] NOTICE[25524] mtp.c: Excessive poll delay 5355!
[Sep 19 18:41:08] NOTICE[10930] l4isup.c: Write buffer full on CIC=4 (wrote only 0 of 160), audio lost.
[Sep 19 18:41:08] NOTICE[10930] l4isup.c: Write buffer full on CIC=4 (wrote only 0 of 160), audio lost.

И это практически без нагрузки вообще (один звонок). Пример показывает, что буфера карточки считываются постоянно.

но не так просто устраивать тесты на системе под коммерческой нагрузкой.

Очень просто, главное аккуратно и продуманно. Не стоит врубать нагрузку сразу в +200 звонков. Увеличивайте кол-во звонков с шагом в 5-10, постоянно отслеживая качество связи.
http://pbxware.ru - все для Asterisk! || Switchvox - сделано на Asterisk! Подробности на http://switchvox.ru
2008-04-15 14:16

Откуда: Новосибирск
Сообщений: 39

Re: Нужны советы по оптимизации и увеличению производительности

За мануалы большое спасибо.

Плата точно генерит прерывания в зависимости от загрузки. В этом легко убедиться запустив dstat при разгруженной и нагруженной системе. Без нагрузки на плату в секунду происходить 2-3 тысячи прерываний, с нагрузкой - 6-7-8тысяч.
2008-04-15 14:30

Откуда: Киев
Сообщений: 749

Re: Нужны советы по оптимизации и увеличению производительности

у меня при похожем конфиге(с 729, на дуале, с 4е1) звук был прекрасный до 2.7 лоад.
правда ядро было скомпилено с 1000 hz таймером.
количество звонков до 230 гдето...
карта может использовать механизм отложеных прерываний(кстати и должна).в этом случае нагрузка растет нелинейно совсем. к тому же карта почти 100% использует dma.
как очень сильный вариант "потюнить" замените сип регистратор и нат на openser/mediaproxy. ибо астериск при сип звонках очень много "блокировок" делает, когда keep-alive шлет и регистрации. при этом загрузка проуа маленькая а лоад растет. в 1.4 лучше чем в 1.2, но до opensera все равно очень далеко.
2008-04-15 14:34

Откуда: Новосибирск
Сообщений: 39

Re: Нужны советы по оптимизации и увеличению производительности

Нет, OpenSer для этого проекта не годится. Сип клиентам нужны различные трансверы, конфы, парковки, перехваты и т.п. Замучаешься это в openser.cfg программировать :).
2008-04-15 14:58

1 2>
Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru