It is currently running around 1000 simultaneous SIP-channels that are evenly spread on 200 different ConfBridge conferences.
My problem is that using htop, top or mpstat i see a single CPU core being very loaded, but not the others, like if there was a single thread using a lot of CPU. But if i change htop or top to look at threads instead of processes, then there is no single thread using more than a few % CPU.
Another strange thing is that Load Average shows very low values.
See the screenshot of htop below (PID: 2270 is the complete Asterisk process, and the asterisk PID's below it are all the threads it consists of)
I am wondering:
- Is the info about one CPU core being very loaded correct? What will happen when it reaches 100%?
- If the info is correct, why does CentOS not move some of the load to other CPU's so the load is even, when you can clearly see that there is not a single thread using alot of CPU?
- Why is Load Average so low when you can clearly see that the Asterisk process uses 432% CPU? - Load Average should show something close to 4.0-4.5
To test if Load Average was working correctly i have tried to create a bash loop script to put 100% CPU load on one core, and then run the script multible times simultanously. If i run the script twice to put 100% load on 2 CPU cores then Load Average shows 2.0 correctly.
Can anybody explain this, or give me some insights?