[Kamailio-Users] OpenSER - RTPproxy performance test

Kristian Kielhofner kkielhofner at star2star.com
Fri Sep 19 23:57:53 CEST 2008


On Fri, Sep 19, 2008 at 5:03 PM, Jim dalton <jpdaltonjr at gmail.com> wrote:
> We ran a benchmark test of OpenSER and RTPproxy to understand the relation
> between CPU capacity and the number of simultaneous calls that could be
> managed with acceptable call quality.
>
> OpenSER and RTPproxy were hosted on a Dell Precision 490 server with two
> Intel Xeon 5140 dual core, 2.33 GHz CPUs and 4 GB of RAM.  Three CPU cores
> were disabled for the test.  The test was run using just a single CPU core.
> Multiple SIPp clients directed traffic to OpenSER which queried an OSP
> server for call routing instructions.  The test was designed for each call
> to require an average of two retries before the call was completed to a SIPp
> server on the third try.  The two-way RTP stream for each call flowed
> through the RTPproxy.  Call Detail Records for each call attempt were sent
> from OpenSER to the OSP server.
>
> OpenSER and RTPproxy, using a single core of the 2.33 GHz CPU, can manage up
> to 750 simultaneous calls.
>
> A summary and detailed description of the benchmark test are available at
> http://www.transnexus.com/White%20Papers/OpenSER_RTPproxy_test.htm
>

Jim,

  As always, thanks for the performance analysis!

  A few questions.  750 calls shows almost %100 CPU usage.  How much
of that CPU time was spent in userspace (rtpproxy)?  What was the
interrupt CPU load?

  At 50pps x 750 RTP streams, that's at least 37,500 interrupts per
second, per stream just for received RTP.  Factor in the other stream
(bidirectional RTP) we get to 75,000pps.  That's a lot of interrupts
(which can be mitigated) just to handle receive traffic, not even
counting interrupt load for transmitted traffic.

  What NICs were you using?  What kernel was this?  Were you using
NAPI receive interrupt polling?  What about more advanced options like
those available in the e1000 driver (Interrupt Throttle Rate)?  I'd be
interested to see what happens with a decent e1000 NIC and ITR set to
1000 or something really low (in terms of performance and the effect
on latency, etc).

  Any plans on testing the kernel-level stuff in MediaProxy 2?  It
would be neat to see the performance difference when userspace doesn't
get involved...

  Sorry for all of the questions, and thanks again for the test!

-- 
Kristian Kielhofner
http://blog.krisk.org




More information about the Users mailing list