Asterisk cpu usage problem

We’ve encountered some issues related to the CPU usage of the Asterisk process. The process utilization fluctuates from 20% to over 200%. This problem is causing audio interruptions in our live calls.

Since our initial installation, we have added approximately 70 tenants, but we never have more than 20 simultaneous calls.

Server Specs:

  • 48 x Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
  • 128 GB RAM
  • 2 TB SSD

We exceed the recommended specifications outlined in the VitalPBX documentation. Is there anything I can do to mitigate the high CPU utilization of Asterisk?

Is this server virtualized or a bare metal server?

What are the codecs utilized during calls?

What’s the Network Bandwidth?

Who’s your VoIP Provider?

Is it self-hosted or in a public VPS?

Hi Miguel,

It is a virtualized server using Proxmox. We only use G.711 codec. Our bandwidth is 100mb/s but it only peaks at 5 mb/s. Our VoIP provider isn’t at fault, we only do business with this company with other pbx and we have no problem. Its also self hosted.

Is your Proxmox configured to provide dedicated resources to the PBX?

Have you tried using G729?

Have you considered moving the server to dedicated hardware?

I don’t know if this is helpful but I’ve seen something similar on my old system (asterisk 11 with realtime peers/dialplan) so it may not apply. When database access was over about 20ms latency Asterisk would start having high CPU usage. In my case I found this because I had a remote database used for failover purposes but high iowait caused the same behavior.

It sounds like you’re not using a container on Proxmox but are virtualized? I’m running as a container under proxmox although only about 40 endpoints on it right now, seeing about 1-5% CPU usage.

Try installing installing sysstat (apt-get install sysstat) and then run “iostat --human -xs 1” which will show iostat refreshing every second. I’d see if high iowait correlates to your high CPU usage.

There is no special configuration on the VM. It’s a basic VM, but I realized that I am using KVM64 virtual cores. The CPU of the hypervisor is a Xeon Broadwell. Must the instruction set be the same for the physical and virtual CPU?

Also, our sip provider do not support the G729 codec.

Hi, I took a screenshot of the ssd’s that we are using. I don’t see high latency.

Check this thread:

We’ve tried to set the correct cpu instruction set last week. It seemed to have reduced the cpu utilisation of the asterisk process. But, the problem came back a week later.

Hi we set the cpu type to host in proxmox, and it seems to have helped a lot.
The cpu still spike over 100%, but the audio does not chop anymore.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.