星号拥塞的原因

将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,然后进行评论。 真正的CPU负载低于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代表CONGESTION。

什么是拥堵和chanuavail参数? 还有什么可以影响呢? 如何区分我自己的星号拥塞和donwstream softswitches发送的“拥塞响应”?

为了诊断你的问题,你需要在一天的时间内运行一个“tcpdump”跟踪或类似的东西。 另一个select是使用像voipmonitor(voipmonitor.org)或homer(sipcapture.org)这样的工具。

拥塞消息可能由各种SIP结果代码引起。 通常情况下,拥塞会表明你已经用完了你在远端的所有分配的信道。 CHANUNAVAIL通常会指示出现networking故障或资源故障,并且您正在寻求使用的通道资源不适合您的使用。

您计算的ASR是非常全球性的,您需要根据特定的目的地前缀针对ASR计算。 例如,什么是您的ASR前缀44,或前缀33.这样,您将能够指出ASR下降的准确原因。 我也build议检查一下你的ACD(平均通话时间),如果你的ACD增加了,你可能会因缺乏资源而受到影响 – 这是一个很好的问题,这意味着你的业务performance良好。

  1. 讨论如何计算ASR和ACD,从你的表中判断,你正在使用A2Billing引擎。 现在,你需要注意以下几点:

  2. 你的maxload应该反映你的机器types。 例如,如果您使用的是四核CPU服务器,则最多为3的服务器可以很好地为您服务。 通常情况下,我会为四核/hex内核设置(CORE COUNT – 1),以及(CORE COUNT – 2)设置任何八进制核心以上的内核。

  3. 请记住,您正在为每个调用运行a2billing脚本。 确保你的php.ini设置为你的脚本运行时提供了足够的内存和资源,否则你会得到错误。

  4. 请记住在safe_asterisk中设置MAXFILES,SYSMAXFILES和PRIORITY – 如果不这样做,可能会出现类似的问题。

  5. 如果您正在运行高功率系统,请将PRIORITY设置为-10。 这将使得Asterisk进程在CPU访问和资源分配方面具有高优先级。

祝你好运。