Asterisk™: будущее телефонии Второе издание
Шрифт:
Таблица 2.2. Пример результатов тестирования для стандартного сценария SIPp, использующего простые приложения Wait и Playback; SIPp отражает обратный медиа-поток Asterisk
Количество | 330 | 330 | 550 |
одновременных | |||
вызовов | |||
Использование | 149 | 14,8 | 57,6 |
ЦП, % | |||
Средняя нагрузка | 49 | 25 | 60 |
Запоминающее | Жесткий
| ОЗУ | ОЗУ |
устройство |
Для больших установок Asterisk функциональность обычно распределяют между несколькими серверами. Один или более центральных модулей будут заниматься обработкой вызовов; их дополнят один или более вспомогательных серверов, обслуживающих периферийные устройства (такие, как система баз данных, система голосовой почты, система конференц-связи, система управления, веб-интерфейс, межсетевой экран и т. д.). Asterisk, как и многие Linux-системы, может расширяться с ростом требований к ней: малая система, которая прекрасно справлялась со всеми задачами по обработке вызовов и обслуживанию периферийных устройств, может быть распределена между несколькими серверами, когда требования возрастут и превысят ее текущие возможности. Гибкость - основная причина, по которой Asterisk исключительно рентабельна для быстро растущего бизнеса; для нее не существует эффективного максимального или минимального размера, который следует учитывать при составлении сметы на покупку. Хотя масштабируемость свойственна большинству телефонных систем, до сих пор нам не приходилось слышать о системе, которая была бы настолько же гибкой, как Asterisk. Однако стоит отметить, что задача по проектированию распределенных систем Asterisk не по зубам новичку в Asterisk.
Выбор серверного оборудования
Задача по выбору сервера проста и сложна одновременно. Проста потому, что на самом деле подойдет любая платформа на базе х86, а сложна потому, что гарантированное обеспечение необходимой производительности системы будет зависеть от того, насколько тщательно спроектирована платформа. При выборе оборудования следует внимательно рассмотреть конструкцию системы в целом и то, какие функциональные возможности требуется поддерживать. Это поможет определить требования к ЦП, системной плате и блоку питания. Те, кто просто настраивает свою первую систему Asterisk с целью научиться это делать, могут спокойно проигнорировать информацию, приведенную в данном разделе. Однако при построении полноценной системы, пригодной к практическому применению, рассматриваемые здесь вопросы требуют проработки.
Вопросы производительности
При выборе оборудования для установки Asterisk главным соображением является то, насколько мощной должна быть полученная система. Это непростой вопрос, поскольку большую роль в данном случае
играет то, как будет использоваться система. Такого понятия, как модель управления производительностью Asterisk, не существует, поэтому, чтобы принять разумное решение о необходимых ресурсах, следует определить, как Asterisk будет использовать систему. Должны быть учтены следующие факторы:
Максимальное число одновременных соединений, которое система должна будет поддерживать
Каждое соединение будет увеличивать нагрузку на систему. Доля трафика в процентном выражении, который потребует интенсивной работы процессора для ЦОС кодеками, использующими алгоритмы сжатия (такими, как G.729 и GSM)
Работа по цифровой обработке сигнала (Digital Signal Processing, DSP), которую Asterisk осуществляет на программном уровне, может иметь огромное влияние на то, какое количество одновременных вызовов она будет поддерживать. Система, которая успешно обрабатывает 50 одновременных вызовов G.711, может потерпеть фиаско при запросе на одновременную обработку 10 каналов со сжатием, кодированных G.729. Мы подробнее поговорим о G.729, GSM, G.711 и многих других кодеках в главе 8. Будет ли обеспечиваться конференц-связь и какая интенсивность общения предполагается
Будет ли система использоваться интенсивно? Конференц-связь требует, чтобы система преобразовывала и добавляла каждый отдельный входной аудиопоток во множество выходных потоков. Смешение нескольких аудиопотоков в масштабе времени, близком к реальному, может создавать существенную нагрузку на ЦП.
Эхоподавление
Эхоподавление может потребоваться при любом вызове, в котором задействован интерфейс коммутируемой телефонной сети общего пользования (Public Switched Telephone Network, PSTN). Поскольку эхоподавление является математической функцией, чем больше системе приходится его выполнять, тем выше будет нагрузка на ЦП [13] . Не пугайтесь. Эхоподавление - это еще одна тема для главы 8. Логика разработки сценариев диалплана
13
Частота ЦП примерно 30 МГц на канал.
Передача Asterisk управления вызовами внешней программе всегда ведет к снижению производительности. Логика максимально должна быть реализована внутри диалплана. Если используются внешние сценарии, основными критериями при их создании должны быть производительность и эффективность.
Как именно эти факторы влияют на производительность, сказать наверняка сложно. Эффект от каждого из них описан в общем, но точного количественного выражения еще нет. Отчасти это объясняется тем, что воздействие каждого компонента системы зависит от множества величин, таких как тактовая частота ЦП, набор микросхем системной платы и общее качество, общий информационный трафик системы, оптимизации ядра Linux, сетевой трафик, количество и тип интерфейсов PSTN и трафик PSTN, не говоря уже о сервисах, не относящихся к Asterisk, которые выполняются системой параллельно. Рассмотрим влияние некоторых ключевых факторов: Кодеки и перекодировка
Попросту говоря, кодек (сокращение от кодер/декодер, или алгоритм уплотнения/разуплотнения данных) - это набор математических правил, который определяет, как будет выполняться оцифровка аналогового сигнала. Кодеки различаются, главным образом, предлагаемыми ими уровнями сжатия и качеством воспроизведения звука. Вообще говоря, чем большая степень сжатия требуется, тем больше ЦОС должно быть выполнено при кодировании или декодировании сигнала. Следовательно, кодеки без сжатия являются менее тяжелыми для ЦП (но требуют более широкой полосы пропускания сети). Выбор кодека должен быть компромиссом между пропускной способностью и загруженностью процессора. Центральный процессор (и модуль обработки операций с плавающей точкой)
ЦП состоит из нескольких компонентов, один из них - модуль обработки операций с плавающей точкой (Floating Point Unit, FPU). От производительности ЦП в сочетании с эффективностью блока FPU во многом зависит, какое количество одновременных соединений сможет эффективно поддерживать система. В следующем разделе («Выбор процессора») даются некоторые общие рекомендации по выбору ЦП соответственно нуждам конкретной системы. Другие процессы, параллельно выполняющиеся в системе