Hello, all 🙂
We have a cluster of Asterisk (v. 11.9) servers that host IVR applications. The servers work behind SIP proxy (kamailio) for load balancing.
All servers are in 2 processor configuration, 8-10 cores per CPU.
When a particular server gets about 500 concurrent calls, the sound quality begins to degrade, the sound plays slowly and with clicks. As far as i understand, it’s because asterisk is unable to send the voice stream in time i.e. the server is overloaded.
What i don’t understand is, at the time that the server appears to be overloaded and the audio quality is bad, actual server’s load is no more than 30-40% (60-70% idle CPU on average). IMHO, this indicates that for some reason the server is unable to use it’s CPU capacity efficiently. May be because of some kind of thread contention inside asterisk?
I have read blogs that advice to divide physical server into several VMs and they claim that this will improve the total capacity. In my own experience, this did not work very well and seems like the visualization actually made the quality worse.
Do you have any advice for me (other than purchasing more servers 😉 ?