Identify More Demanding Routine Inside Asterisk

Home » Asterisk Users » Identify More Demanding Routine Inside Asterisk
Asterisk Users No Comments

Hi List !

I’m facing a problem with the CPU consumption in Asterisk 11.22.0.

I could decrease a lot of load, migrating both the astdb.sqlite3 and call recordings (with Monitor app) to a tmpfs mount in RAM (with noatime and nodiratime flags), manually spread each of the hardware interrupts (network interfaces, wanpipe and megasas) to an individual dedicated CPU core and stick the Asterisk process to other dedicated CPU core (free of hardware interrupts).

Now the usage is 90% of his core with 300 active channels (66% SIP + 17%
IAX + 17% DAHDI). 17% of channels are g.729 transcoded via software. Some considerations are that there is +30 AMI concurrent clients, plus SIP
Realtime peers. I don’t have any AGI script or ODBC custom function/query. The DialPlan is minimal for the work it does too.

My question is: Is there any way to identify the more demanding routine/task in Asterisk so I can know where to tweak ?

I read the excelente post of Moy [1], but the most usage of CPU is in the mail process of Asterisk, not in any of the threads. Moreover, the pstack command don’t work on my 64-bits system.

Hope anyone can help. Cheers.


Why does Asterisk consume 100% CPU?