19 asterisk进程占用CPU很高问题排查笔记

原帖:http://hi.baidu.com/mmaey/item/3f14a69eb53265f92916479f

 

新装的机器,asterisk进程占用CPU很高,如图:

19 asterisk进程占用CPU很高问题排查笔记_第1张图片

core show channels verbose查看当前通话数:

callc*CLI> core show channels verbose

Channel              Context              Extension        Prio State   Application  Data                      CallerID        Duration Accountcode PeerAccount BridgedTo

0 active channels

0 active calls

2 calls processed

callc*CLI>

通话数为0,即没有用户在打电话,这就奇怪了!

接下来我们就看看到底是asterisk的哪个模块引起的。

用top命令查看asterisk进程ID如上图:PID为3040

用如下命令:ps -mp 3040 -o THREAD,tid,time , 如图:

 

19 asterisk进程占用CPU很高问题排查笔记_第2张图片

也可以用:ps -LlFm -p `pidof asterisk`,如图:

 

19 asterisk进程占用CPU很高问题排查笔记_第3张图片

 

可以看到是了进程ID 3054

执行:

[root@callc ~]# asterisk -rx 'core show threads' |grep 3054

0x411cc940 3054 do_timing            started at [  490] res_timing_pthread.c init_timing_thread()

可以看到是res_timing_pthread.c模块,asterisk时钟接口模块,此模块是meetme会议用的 。

如果你用不到meetme你可以删除它(应该没有影响吧?!)。

但这个模块为毛会突然这么耗资源了呢?

用命令core restart now重启了一下asterisk这个问题就再也没有出现了。

回想之前asterisk装好后,我发现系统时间是错误的 于是就用命令同步了一下时间。

/usr/sbin/ntpdate -u cn.pool.ntp.org && /sbin/hwclock -w

之后asterisk才发飙的,是不是因为这个呢?

实验了一下,果然是这个原因,如果系统时间更改,asterisk没有重启则就是引起这样的问题。

汗!

 

你可能感兴趣的:(cpu)