Stress Tests

58 views
Skip to first unread message

金朝阳

unread,
Nov 8, 2022, 9:54:48 AM11/8/22
to rtpengine
Hey guys, I'm looking for stress test solutions for rtpengine in a 4C8G machine, here is my stress test(opensips 2.4.3):
微信图片_20221108224702.jpg
No recording or transcoding, and kernel module enabled, but it can only reach 800 calls, can you tell me it's abnormal? And can you give me your thoughts to make stress tests? I haven't got anything about stress test content from documentation.

Richard Fuchs

unread,
Nov 8, 2022, 12:29:13 PM11/8/22
to rtpe...@googlegroups.com
On 08/11/2022 09.54, [EXT] 金朝阳 wrote:
> Hey guys, I'm looking for stress test solutions for rtpengine in a
> 4C8G machine, here is my stress test(opensips 2.4.3):
> ...
> No recording or transcoding, and kernel module enabled, but it can
> only reach 800 calls, can you tell me it's abnormal? And can you give
> me your thoughts to make stress tests? I haven't got anything about
> stress test content from documentation.
>
You should be able to tell from the resource usage (mostly CPU) where
the bottleneck is. It's possible that sippy is the limiting factor. Also
I don't know what a 4C8G machine is, but if it's a VM or a container,
note that you likely won't see a large benefit from the kernel module
unless special steps are taken.

Cheers

金朝阳

unread,
Nov 8, 2022, 9:05:08 PM11/8/22
to rtpengine
Hi Richard:
    I am so sorry, my 4C8G machine is a VM with 4 logical processors and 8GB memory. I don't know it is not generic abbreviation. And the usage of CPU will climb to 380% when rtpengines reach 800 calls. The codec is 8000 PCMA.
    I observe for serval hours, sipp doesn't seem to be  the limit factor. Can you tell me is it normal that such a machine can only reach 800 calls?
    I don't think my way is a good idea to test rtpengine, and can you tell me how you to make the stress tests?
    Another question:  why rtpengine always warning: "Usage error: List of codecs empty. Restoring original list of codecs. Results may be unexpected." I just use opensips(v2.4.3) to control rtpengine like this:
route { 
      ...
      if (is_method("INVITE")) {
            if (has_body("application/sdp")) {
                 if (rtpengine_offer())
                     t_on_reply("1"); 
            } else {
                t_on_reply("2");
            }
            t_relay();
            exit();
      }
     if (is_method("ACK") && has_body("application/sdp")) {
         rtpengine_answer(); 
         t_relay();
         exit();
     }
    ...
 } 
 onreply_route[1] {
     ...
     if (has_body("application/sdp"))
         rtpengine_answer();
     ...
 } 
onreply_route[2] {
     ...
     if (has_body("application/sdp"))
        rtpengine_offer();
      ...
 } 
And could it make rtpengine can only reach 800 calls?
Sorry to bother you and I am quite new to VOIP world. Thank you for your reply.

Monideth Pen

unread,
Nov 9, 2022, 3:01:26 AM11/9/22
to rtpengine
Hi,

We have a very similar test setup, so I would be interested in the outcome of this.

Richard,

You said "but if it's a VM or a container, note that you likely won't see a large benefit from the kernel module unless special steps are taken." We are using VMs for our test and production environment. Could you explain further what these "special steps" are.

Thank you. 

Richard Fuchs

unread,
Nov 9, 2022, 8:22:39 AM11/9/22
to rtpe...@googlegroups.com
On 08/11/2022 21.05, [EXT] 金朝阳 wrote:
> Hi Richard:
>     I am so sorry, my 4C8G machine is a VM with 4 logical processors
> and 8GB memory. I don't know it is not generic abbreviation. And the
> usage of CPU will climb to 380% when rtpengines reach 800 calls. The
> codec is 8000 PCMA.
CPU usage attributed to the rtpengine process, or CPU usage overall?
User CPU or system CPU?
>     I observe for serval hours, sipp doesn't seem to be  the limit
> factor. Can you tell me is it normal that such a machine can only
> reach 800 calls?
For what is essentially userspace-only packet forwarding, I think 800
calls is a decent number for a 4-core VM.
>     I don't think my way is a good idea to test rtpengine, and can you
> tell me how you to make the stress tests?
We use a dedicated SIP/RTP load tester (StarTrinity) that is running on
an external system.
>     Another question:  why rtpengine always warning: "Usage error:
> List of codecs empty. Restoring original list of codecs. Results may
> be unexpected."

Enable debug logging and post what you see in one such call. Perhaps
your sippy test setup doesn't communicate the codecs in the SDP correctly.

Cheers

Richard Fuchs

unread,
Nov 9, 2022, 8:29:39 AM11/9/22
to rtpe...@googlegroups.com
On 09/11/2022 03.01, [EXT] Monideth Pen wrote:
> You said "but if it's a VM or a container, note that you likely won't
> see a large benefit from the kernel module unless special steps are
> taken." We are using VMs for our test and production environment.
> Could you explain further what these "special steps" are.

Depends on the type of environment you have. One option is to load the
kernel module on the host system and have rtpengine running in the guest
use the host's kernel (e.g. in a docker container), which in turn
requires the network setup to take this into account. Another option is
to use network hardware and drivers that specifically support
virtualised mode of operation (e.g. igbvf/iavf).

Cheers

Reply all
Reply to author
Forward
0 new messages