[Asterisk-Dev] Asterisk 99% cpu with libunicall
Andres Maduro
andres at iconos.com.ve
Tue May 31 15:23:24 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