Звездочка из-за пробок

Переместив Asterisk с одного сервера на другой, я заметил, что ASR упал на 15-20 %. Также я заметил следующее предупреждение в файле журнала

[Dec  8 15:52:00] WARNING[4771][C-00000031] pbx.c: Maximum loadavg limit of 0.900000 load exceeded by 'SIP/889-00000061' (currently 1.010000)!
[Dec  8 15:52:00] WARNING[4771][C-00000031] chan_sip.c: Failed to start PBX (call limit reached)

maxload был установлен на 2 и позже прокомментировал. Реальная загрузка процессора была ниже 50 %, я понятия не имею, почему Asterisk ошибся.

mysql> SELECT
    -> terminatecauseid,
    -> count(terminatecauseid),
    -> count(terminatecauseid) * 100 /  t.cnt
    -> FROM cc_call c
    -> cross join ( select count(1) as cnt FROM cc_call n where n.starttime BETWEEN '' AND '') t
    -> where c.starttime BETWEEN '' AND ''
    -> group by c.terminatecauseid;
+------------------+-------------------------+----------------------------------------+
| terminatecauseid | count(terminatecauseid) | count(terminatecauseid) * 100 /  t.cnt |
+------------------+-------------------------+----------------------------------------+
|                0 |                   16731 |                                 3.1444 |
|                1 |                  184780 |                                34.7277 |
|                2 |                   21788 |                                 4.0948 |
|                3 |                   51831 |                                 9.7411 |
|                4 |                  165769 |                                31.1547 |
|                5 |                   40409 |                                 7.5945 |
|                6 |                   50775 |                                 9.5427 |
+------------------+-------------------------+----------------------------------------+

Удаление maxload помогло, однако я все еще вижу, что заторы выше нормы. Как я понимаю, 6 означает CHANUNAVAIL и 5 - КОНГРЕССИЯ.

Что такое параметры скопления и chanuavail? Что еще может повлиять на это? Как различить перегруженность моего собственного Asterisk и "ответы на перегрузку", отправленные программными переключателями donwstream?

1 ответ

Чтобы диагностировать вашу проблему, вам нужно запустить трассировку "tcpdump" в течение дня или что-то в этом роде. Другим вариантом будет использование такого инструмента, как voipmonitor (voipmonitor.org) или homer (sipcapture.org).

Сообщения о перегрузке могут быть вызваны различными кодами результата SIP. Обычно перегрузка указывает на то, что вы использовали все свои выделенные каналы на удаленном конце. CHANUNAVAIL обычно указывает, что произошла ошибка сети или ресурса, и ресурс канала, который вы хотите использовать, недоступен для вашего использования.

Ваш расчет ASR является очень глобальным, вам нужно точно указать расчет ASR в соответствии с конкретным префиксом назначения. Например, какой у вашего ASR префикс 44 или 33. Таким образом, вы сможете точно определить точную причину падения ASR. Я бы также посоветовал проверить вашу ACD (Средняя продолжительность звонка), если ваша ACD увеличилась, вы можете страдать от нехватки ресурсов - что является хорошей проблемой, а значит, - у вашего бизнеса все хорошо.

  1. Разбивая обсуждение того, как рассчитать ASR и ACD, судя по вашей таблице, вы используете механизм A2Billing. Теперь нужно обратить внимание на следующее:

  2. Ваша максимальная нагрузка должна отражать тип вашей машины. Например, если вы используете сервер четырехъядерных процессоров, максимальная нагрузка 3 хорошо вам подойдет. Обычно я бы установил (CORE COUNT - 1) для четырехъядерных и шестнадцатеричных ядер и (CORE COUNT - 2) для всего ядра Octa и выше.

  3. Помните, что вы запускаете скрипт a2billing для каждого вызова. Убедитесь, что ваши настройки php.ini предоставляют достаточно памяти и ресурсов для времени выполнения вашего скрипта, иначе вы получите ошибки.

  4. Не забудьте установить MAXFILES, SYSMAXFILES и PRIORITY в safe_asterisk - в противном случае могут возникнуть аналогичные проблемы.

  5. Если вы используете систему высокой мощности, установите PRIORITY на -10. Это даст процессу Asterisk высокий приоритет в доступе к процессору и распределении ресурсов.

Удачи.

Другие вопросы по тегам