Asterisk Utilizing Only One Core

Hey all,
I’ve been messing around with the SIPp load generator for the last couple weeks on an Intel dual quad-core server and can’t figure out how to utilize all eight cores. With RTP traffic I can get one core up to 100% but the other seven are idle. Is Asterisk multithreaded? Do I need to run SIPp on multiple clients instead of just from one? Any one else have trouble with multi-core servers?

The server is running Asterisk 1.4.5 on top of Red Hat Enterprise x64 with the 2.6 SMP Linux Kernel.

Any help would be greatly appreciated, thanks.

Bump. Does anyone have any ideas?

I would try running SIPp from multiple clients. I dont run on a multicore server but I do run on a dual prcessor server and see fairly even processor utilization. Also I run 1.2 but I doubt they would change anything on 1.4 that major.

I tried running SIPp from multiple clients yesterday but to no avail. Thanks for the reply though.

Hello Ryan

i am doing some load test for asterisk using SIPp , for the moment i’m using a very poor machine. but for the coming week ; i’m going to do test on intel core 2 duo.

just for information :
i realised 3 scenario which are :

1- uac call the music on hold
2- uac call the voicemail
3- uac call uas with rtp echo

even if the machine was very old , asterisk has reached great performance (depends on the scenario, i reached 64 simultaneous calls)

i’ll keep you up to date.

peace and love with you.

Hello Sara,
could you please post the sipp scenarios as they could be useful to me too ?

Bye.

HELLO,
As i promised, this is the first scenario : uac call the MOH

First, i declare a sip user in my sip.conf. i affect to it a context that answer the call and play a music (3 seconds)
Remember that, So that this sip user can do calls, he has to be registered.

Now, let’s start with my configuration :

in sip.conf :

[sippuac] type=friend username=sippuac host=dynamic port=5061 context=from-sipp dtmfmode=rfc2833 insecure=very canreinvite=no

in extension.conf :

[from-sipp] exten => _X.,1,Answer() exten => _X.,2,Playback(tt-weasels) ; durée : 3 sec

this is how my uac register :

sipp @ server  -sf asterisk_register.xml -inf asterisk_register.CSV -r 1 -l 1 -m 1 -mi @ locale  –i @local

as you see , i have used scenario and info files
my asterisk_register.xml is :

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">

< !-- sans trop tarder dans le texte de la License |-) -->

<scenario name="Basic UAS responder REGISTER">
  <!-- By adding rrs="true" (Record Route Sets), the route sets         -->
  <!-- are saved and used for following messages sent. Useful to test   -->
  <!-- against stateful SIP proxies/B2BUAs.                        -->

  <!-- Register begins  -->
  <send retrans="500">
    <![CDATA[

      REGISTER sip:[remote_ip] SIP/2.0
      Via: SIP/2.0/[transport] [local_ip]:[local_port]
      To: <sip:[field0]@[remote_ip]:[remote_port]>
      From: <sip:[field0]@[remote_ip]:[remote_port]>
      Contact: <sip:[field0]@[local_ip]:[local_port];transport=[transport]>
      Expires: 360000
      Call-ID: [call_id]
      CSeq: 1 REGISTER
      Content-Length: 0
    ]]>
  </send>
  <recv response="100" >
  </recv>
  <recv response="200" rtd="true">
  </recv>
  <!-- Register ends -->
  <!-- definition of the response time repartition table (unit is ms)   -->
  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
  <!-- definition of the call length repartition table (unit is ms)     -->
  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
</scenario>

and asterisk_register.CSV is :

SEQUENTIAL
sippuac

now , since uac is registered , i can generate calls with the command :

sipp @ server  -sn uac -s 111 -r 1  -d 4000 -rp 1000 -trace_err -mi @ ip locale -i @ ip locale

if you are interessted by the others scenarios , just tell me and i will post them.

please if some one find any anomaly , just tell me also;)

Sara

I’m using sipp 2.01 and the following line of the xml file seems wrong (the error is sipp can’t find the scenario):

< !-- sans trop tarder dans le texte de la License |-) -->

and it should be:

I did a test with an * box I’ve here and it worked, I was able to stress the * box using sipp, after the registration.

Now I would like to try the other scenarios, could you please post them when you have time ?

Thanks very much for sharing.

Bye.

Hello mbruni,

Sorry, it was an error of typing. (one more space !!)

If sipp can’t find the xml file, it’s mean that this last was not in the good place. you have to put it in /sip-tester/pcap directory

:wink: