[Asterisk-Dev] Asterisk 99% cpu with libunicall
Andres Maduro
andres at iconos.com.ve
Tue May 31 16:33:11 MST 2005
Hi,
I am sending this message again, I think it did not went through. Sorry if it is duplicate.
I have been experiencing 99% of cpu usage by the asterisk 1.0.7 process under very low loads with an E1 interface and 2 Digium cards (1 Wildcard TE110P and 1 Wildcard TDM400P).
The high load occurs when there are 2,3,4 or more calls with 99% of cpu usage. When this occurs, the audio on all calls are bad or maybe on almost all calls.
The other problem I have is that Snom sip phones can't play dtmf on the chan_unicall channel under * 1.0.7 using either dtmfmode (info, rfc2833 or
inband). I have tested the same configuration with * 1.0.4 and 1.0.5 and
dtmf from sip phones through SIP INFO work great.
I would like to expose what I am using, what I have done to try to fix the high cpu usage.
We are using:
- Linux Kernel 2.4.21-32.0.1.EL from CentOS distro (bundled with Asterisk at Home version 1.0 ISO)
- Asterisk 1.0.7 which is bundled with Asterisk at Home 1.0 ISO distro.
- Spandsp-0.0.2pre11 bundled with Asterisk at Home
- I have installed libunicall-0.0.2pre2 with libmfcr2 and libsupertone (yes this is the latest one newer than 0.0.2pre19)
What I have done:
So far I have tested the following to see if the 99% CPU go away:
- Changed motherboard to see if the problem is related to this.
- I have tested 2 uniprocessor motherboards (One Gbyte, the other
Asrock)
- I have tested and old Pentium III dual motherboard with APIC controller with same high cpu.
- I have tested running * with and without echo cancel via unicall.conf
- I have tried all possible echo cancellers by recompiling zaptel with zconfig.h options
- I have renamed mpg123 process to see if this is the problem, it is not.
- I have created a simple extensions.conf with the same problem (I thought that dialparties.agi that came with Asterisk at home could be causing this problem or other agi scripts or macros)
- I have tried to boot the kernel with noapic and acpi=no kernel directives.
- I have tried hdparm -u1 on all /dev/hdx devices with the same result.
- I have checked for irq misses with zttool and find none.
- I have disabled serial port, usb, parallel port, audio, etc, in order to free as much irqs as I could.
- I ran strace <* pid> during a 99% of cpu load, and found lots of this:
write(31, "\0\7\20{\354\221\230\207\233\340f\35\32\31\26dA\314\342"...,160)
= -1 EAGAIN (Resource temporarily unavailable) write(31,"\0\7\20{\354\221\230\207\233\340f\35\32\31\26dA\314\342"..., 160) = -1 EAGAIN (Resource temporarily unavailable) write(31,"\0\7\20{\354\221\230\207\233\340f\35\32\31\26dA\314\342"..., 160) = -1 EAGAIN (Resource temporarily unavailable) write(31,"\0\7\20{\354\221\230\207\233\340f\35\32\31\26dA\314\342"..., 160) = -1
I tried to compile with debug and DEBUG=-g -pg without much success. I could not compile it after I remove from all Makefiles the -fomit-frame-pointer which is incompatible with -pg. I will be trying again to compile it now that our customer has gone for today.
Any help, thoughts on how to isolate this annoying behaviour is much appreciated.
I am willing to provide additional information if you guide me in what you need.
Kind regards.
Andres Maduro.
More information about the asterisk-dev
mailing list