Сложнее всего решать вопросы производительности именно в системах среднего типа (от 10 до 50 телефонов). Как правило, такие системы развертываются только на одном или двух серверах и, таким образом, каждая машина должна будет обрабатывать по несколько специальных задач. По мере роста нагрузки платформа все больше приближается к своим предельным значениям технических характеристик. Пользователи могут начать испытывать проблемы с качеством связи, не понимая, что это происходит не потому, что система неисправна, а просто из-за того, что достигнуты пределы ее возможностей. По мере роста нагрузки на систему проблемы будут увеличиваться, а удовлетворенность пользователей, соответственно, падать. Исключительно важно, чтобы проблемы с производительностью были выявлены и решены до того, как они будут замечены пользователями. Отслеживание производительности в таких системах и быстрое реагирование на любые возникающие тенденции - основные условия, которые гарантируют, что платформа обеспечит качественную телефонную связь.
Большие системы (более 120 каналов) обычно развертываются на нескольких системах и сайтах, и, таким образом, вопросы производительности можно решать путем добавления компьютеров. Очень большие системы Asterisk созданы именно так.
Построение большой системы требует наличия глубоких знаний по множеству различных дисциплин. Не будем подробно останавливаться на этом в данной книге, отметим только, что проблемы, возникающие в этом случае, будут аналогичны сложностям, которые появляются при любом использовании нескольких серверов, обрабатывающих одну распределенную задачу.
Просто чтобы сразу устранить любую предвзятость, мы также не будем рекомендовать конкретную системную плату в данной книге. В условиях, когда каждую неделю появляются новые системные платы, любые рекомендации станут неактуальными еще до того, как книга появится на полках книжных магазинов. Более того, системные платы подобны автомобилям: принцип один, отличия - в деталях. И поскольку Asterisk - приложение, требовательное к производительности, детали имеют большое значение.
Однако мы все-таки дадим некоторое преставление о том, какие системные платы обеспечат хорошую работу Asterisk и платы с какими характеристиками можно считать подходящими. Главное - они должны обеспечивать стабильность и высокую производительность. Вот некоторые рекомендации:
Различные системные шины должны обеспечивать минимально возможную задержку при обработке данных. Если планируется PSTN- соединение с использованием аналогового или PRI-интерфейсов (обсуждаются в этой главе ниже), наличие в системе плат Zaptel обеспечит формирование 1000 запросов на прерывание в секунду. Наличие других устройств на шине, мешающих этому процессу, приведет к снижению качества связи. Наборы микросхем производства Intel (для процессоров Intel) и nVidia nForce (для процессоров AMD) считаются лучшими в этой области. При оценке любой системной платы проверьте ее набор микросхем, чтобы убедиться, что для него не зафиксированы случаи возникновения проблем со временем ожидания запроса на прерывание.
При использовании в системе плат Zaptel необходимо убедиться, что BIOS [16]обеспечивает максимальный контроль над распределением прерываний. Как правило, системные платы высокого класса обеспечивают намного большую гибкость при настройке BIOS; дешевые платы обычно предлагают очень ограниченные возможности управления. Однако это спорный вопрос, поскольку системные платы с включенным встроенным APIC [17]передают управление прерываниями операционной системе.
Серверные системные платы обычно реализуют иной PCI-стандарт, нежели системные платы для рабочих станций. Различий много, но наиболее очевидное и широко известное - то, что эти две версии имеют разные напряжения. Приобретая платы, необходимо знать, какие PCI-разъемы нужны: с напряжением 3,3 или 5 В. На рис. 2.1 наглядно показано, чем отличаются разъемы 3,3 и 5 В [18]. На большинстве серверных системных плат есть оба типа разъемов, но платы для рабочих станций обычно имеют только разъем 5 В.
Есть свидетельство тому, что объединение двух совершенно независимых однопроцессорных систем может обеспечить намного больше преимуществ, чем использование двух процессоров в одном компьютере. В этом случае не только удваивается мощность процессора, но также достигается намного лучший уровень избыточного резервирования по цене, равной стоимости компьютера с одним системным блоком и двумя процессорами. Однако нельзя забывать, что спроектировать решение Asterisk с двумя серверами намного сложнее, чем с одним компьютером.
Читать дальше