Рекомендации по аппаратному обеспечению

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

Довольно сложно учесть все факторы, но ниже мы попытаемся учесть основные факторы.

CPU

Подбор CPU основан на сравнении согласно Passmask бенчмарку.
Имеются данные испытаний с различными параметрами трафика для различных CPU:

VoIP:

ASR (%) ACD (минут) перекодировка кодеков (% звонков) аудиозапись (% звонков) Захват звонков (% звонков) CPU Passmark бенчмарк кол-во одновременных звонков версия Smartswitch
40 2 15 0 0 Xeon E5-2697 v2 @ 2.70GHz 17812 2200
4 3 15 0 0 Xeon E3-1230 v2 @ 3.30GHz 8890 750
20 2 20 25 0 Pentium(R) Dual-Core E5300 @ 2.60GHz 1553 120
5 4 0 0 0 Pentium(R) Dual-Core E5300 @ 2.60GHz 1553 150
10 3 10 50 0 Pentium(R) Dual-Core E5300 @ 2.60GHz 1553 150
45 1 10 90 10 Pentium(R) Dual-Core E5300 @ 2.60GHz 1553 100 7.11.37091
1 3 0 20 20 Xeon(R) CPU E5-1650 v3 @ 3.50GHz 13601 700 7.11.42301

Под аудиозаписью подразумевается запись в sln формате, и перекодирование в mp3 в моменты простоя (напр. ночью).

SMPP:

доля успешных (%) CPU Passmark бенчмарк кол-во сообщений в секунду
100 Pentium(R) Dual-Core E5300 @ 2.60GHz 1553 100

Используя общедоступные данные Passmask бенчмарка возможно вычислить максимальную нагрузку, которую сможет выдержать ваш CPU.

Например, по таблице выше, установлено, что CPU Intel(R) Xeon(R) E5-2697 v2 @ 2.70GHz способен обрабатывать 2200 звонков с ASR 40%, ACD 2 минуты, 15% звонков с перекодировкой кодеков.
Требуется установить сколько звонков сможет поддерживать ваш CPU при таких же параметрах трафика.

Зайдите на http://www.cpubenchmark.net/cpu_list.php
Введите название вашего CPU.
Бенчмарк PassMark показывает для Xeon E5-2697 17812.
Согласно бенчмарка PassMark для вашего CPU пропорционально посчитайте, сколько сможет обработать ваш CPU.

Например, ваш CPU Intel(R) Core(TM) i3 550 @ 3.20GHz.
Его PassMark 2846.
Следовательно, ваш CPU сможет обработать 2846 * 2200 / 17812 = 350 звонков с ASR 40%, ACD 2 минуты, 15% звонков с перекодировкой кодеков.

Внимание! Если на сервере будет не только обработка трафика, а и активная работа с веб-интерфейсом (формирование отчетов, итп), следует заложить 20% мощности сервера на эти задачи.
Также следует заложить 10-20% мощности на пиковые нагрузки. Например, вы подсчитали мощность для среднего ASR 40% в течение дня, а в течение 10-20 минут в день может быть кратковременно ASR 5%. Очевидно, что если не будет заложен запас, то в эти моменты пиковой нагрузки будут проблемы с качеством.

NIC

Рекомендум 1Gbit Intel для всех конфигураций больше 10 одновременных звонков, как наименее проблемный чип.
Если речь идет о 10 звонках - то любой чип подойдет.

Объем RAM

общее кол-во звонков RAM
50 4G
100 8G
250 16G
500 32G
1000 64G

Хранение данных.

От выбора системы хранения данных зависит то, как комплекс будет функционировать в целом.

RAID зеркало.

Для односерверных инсталляций мы настроятельно рекомендуем устанавливать зеркало RAID из 2 жестких дисков.
Зеркало может быть программное, аппаратное либо полу-программное.
Это защитит ваши данные от потери в случае выхода из строя жесткого диска.

Для кластерных установок нет такого жесткого требования, так так данные реплицируются между узлами кластера
В случае выхода со строя одного из узлов данные будут доступными на оставшихся узлах.
Однако даже в этом случае предпочтительнее устанавливать RAID, так как замена жесткого диска и синхронизация узла с нуля займет больше 1 дня, в течение которого будет простой этого узла.

В порядке убывания производительности:

Обратите внимание, что при нагрузке более 200 одновременных звонков (а с записью разговоров более 100) и одновременно интенсивной работе с веб-интерфейсом (загрузка цен, генерация отчетов, итп) на одном сервере, программный и полупрограммный RAID на HDD может быть недостаточно производительным.
Это может вызывать запаздывание биллинга звонков и "медлительность" веб-интерфейса.
В этом случае рекомендуем:
1) разнести систему и базу CDR по разным жестким дискам (см. раздел Жесткие диски ниже)
2) использовать более производительное аппаратное обеспечение (см. выше)
3) если после выполнения п.1-2 нагрузка все равно слишком большая - разнести систему на 2 сервера. Один будет заниматься телефонией, второй - биллингом и веб-интерфейсом.
Подробнее о возможных схемах кластеризации см. в разделе Кластеризация.

В случае, если выбирается аппаратный RAID контроллер без привязки к конкретной модели, мы рекомендуем следующих производителей (в порядке убывания приоритета):

Для продукции этих производителей обычно есть драйвера (однако нужно дополнительно проверить поддержку конкретного устройства, см. "Поддержка со стороны операционной системы" ниже) и утилиты для контроля и пересборки RAID из-под работающей системы.
Если вы выберете RAID контроллер другого производителя, то возможны проблемы с доступностью утилит контроля (даже при наличии драйвера RAID - см. "Поддержка со стороны операционной системы").
Это может привести к невозможности пересборки RAID (при замене диска) из-под работающей системы и что может привести к необходимости делать пересборку из BIOS.
Это в свою очередь, приведет к приостановке сервиса на несколько часов, если один из дисков выйдет со строя и потребуется его заменить, что может быть недопустимо для вашего бизнеса.

По конкретной модели, на текущий момент самый лучший результат показал сравнительно дешевый RAID контроллер LSI MegaRAID SAS 9260-4i.
Бенчмарк dbench показал на зеркале из 2 SATA дисков 1200 Mbps, на зеркале из 2 SSD дисков - 1500 Mbps.
Что примерно в 2 раза в среднем превосходит показатели протестированных Adaptec.
Также, не было отмечено серьезных проблем с надежностью на нескольких серверах с данным контроллером.
Поэтому, если есть возможность, и вы не хотите экспериментировать с моделями контролеров, используйте именно этот контроллер.

Жесткие диски

Для улучшения производительности, желательно разнести систему и хранилище CDR (а также аудио записей и pcap файлов) по 2 разным жестким дискам.
При использовании RAID зеркала - по 2 разным зеркальным томам (2 тома по 2 диска).

Таким образом, генерация отчетов, аудио и pcap запись не будут влиять на качество работы телефонии.
При интенсивной аудиозаписи (больше 50 одновременных звонков) это обязательное условие качественной работы системы.

Типы жестких дисков.

В данный момент на рынке есть жесткие диски следующих типов (в порядке убывания производительности):

Рекомендуем отталкиваться от максимального требуемого размера дискового пространства и подбирать максимально производительные комбинации.
Например, если Вам требуется 3Тб дискового пространства, то возможны варианты в порядке убывания производительности:

1) 1 NVME на 3Tb
2) 1 NVME на 1Tb + 1 SSD на 2Tb
3) 1 NVME на 1Tb + 1 SATA HDD на 2Tb

итд

Также возможные комбинации зависят от кол-ва портов внутри сервера.
Требуется проанализировать экономическую составляющую комбинаций согласно текущих цен на рынке на покупку/аренду аппаратного обеспечения и затем выбрать оптимальную.

Объем жестких дисков

Объем жесткого диска расчитан на:

общее кол-во звонков Общий доступный объем
50 250G
100 500G
250
500
1000

Для кластерных конфигураций более 1000 одновременных звонков рекомендуется установить отдельный сервер для биллинга с аппаратным RAID зеркалом 3Т и более.

Поддержка со стороны операционной системы.

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

Список поддерживаемого оборудования FreeBSD: http://www.freebsd.org/releases/12.2R/hardware.html

На что следует обратить внимание:

Номер чипа можно узнать из детальной спецификации сервера, которую должен предоставить хостер либо продавец сервера.
Поиск в документе можно осуществлять по CTRL+F.

Если есть возможность, лучше предварительно установить бесплатно распространяемый образ Smartswitch (http://streamco.org/ru/products/smartswitch/download) для проверки совместимости.
Если удалось установить систему с образа и сервер пингуется - то сервер совместим для работы Smartswitch.

Что требуется нам знать, чтоб вычислить подходящий сервер под ваши задачи

Предоставьте предполагаемые пиковые параметры Вашего трафика, которые дадут максимальную нагрузку на оборудование:

1. Кол-во одновременных звонков (чем больше - тем выше нагрузка).
2. ASR ( %, чем меньше - тем выше нагрузка)
3. ACD (минуты, чем меньше - тем выше нагрузка)
4. Перекодировка кодеков ( % звонков, чем больше - тем выше нагрузка)
5. Аудиозапись ( % звонков, чем больше - тем выше нагрузка)
6. Захват pcap ( % звонков/SMS, чем больше - тем выше нагрузка)
7. Сколько времени требуется хранить CDR, аудиозаписи, pcap (чем дольше - тем больше требуется ёмкости дисков)

English translation