Red Hat Enterprise Linux 5 and Asterisk

Dear all,

I am facing a problem and I would have some confirmations from professional of Linux and Asterisk.

So …

I am using RHEL5 (2.6.18-8.el5 #1) and Asterisk 1.4.13 as an IPtoIP interconnect server.

This Asterisk receives about 250 simultaned calls (500 channels) and we have had the surprise to see that the operating system (or the Asterisk) is using only one CPU…

The problem is that we would like to dediate some servers for this usage and that we did order dual quad core processors on each server to increase the traffic and … if the Asterisk only uses 1 core … that’s annoying !

So we would like to know :

  1. Is the RTP flow only managed by one core ?
  2. Is it a problem due to the RHEL5 ?
  3. Is it a problem due to the Asterisk ?
  4. Is there a solution ? or a way to do else ?

Thank you very much.

As you can see below, mpstat from first and second core when the server is receiving 100 calls (200 channels) :

[root@-~]# mpstat -P 0
Linux 2.6.18-8.el5 ()       11/13/2007

%nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
0.00    2.68    0.00    0.19    0.92    0.00   95.11    478.68
[root@-~]# mpstat -P 1
Linux 2.6.18-8.el5 ()       11/13/2007

%nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
0.00    0.01    0.00    0.03    0.00    0.00   99.95     10.08

You can see that the intr/s and the %idle on the second CPU show it is unused for the Asterisk.

I dont really see any problem here - you say you have 200 active channels and your showing only about a 5% total CPU utilization. Even if Asterisk only works on one CPU (which may be the case) you are no where near maxing out that one CPU so why worry about it.

This is not the issue, the issue is to know if we buy a double quad core server, will asterisk use the maximum capacity or only one core ?

I dont know the answer to that question.

I will offer that in one of the sessions at AsteriskWorld in Boston last month the presenter was talking about large scale installs and they never spec out dual processor machines - they run all single processor machines, 2 GB RAM and mirrored drives. His argument was more of a redundancy thing as the setups they run (no transcoding, no analog\digital lines on the server) the servers can support large enough numbers of users that it is better off splitting them across multiple servers anyway for redundancy. I think you are seeing the same thing in your tests - you have 200 calls and only 5% utilization! How many calls would it take to get to 50% utilization? 500? 1000? 2000?