Registrar performance tests

Testing SER in the role of registrar on sequential usernames in different database modes and different process counts:

There was generated 100 000 sequential/random usernames used by sipp. Sequential means that they were in the form +14290xxxxxx, x are numbers; random usernames were at the same length but randomly generated. (Note: when using 100k usernames but doing 1M iterations there are 10 contacts registered per user.)

SER used 1240 MB of shared memory.

throughput

db_mode_0_sequential.1
Registrar with db_mode 0 with sequential usernames and process count 1.

db_mode_0_sequential.2
Registrar with db_mode 0 with sequential usernames and process count 2.

db_mode_0_sequential.4
Registrar with db_mode 0 with sequential usernames and process count 4.

db_mode_0_sequential.8
Registrar with db_mode 0 with sequential usernames and process count 8.

db_mode_1_sequential.1
Registrar with db_mode 1 with sequential usernames and process count 1.

db_mode_1_sequential.2
Registrar with db_mode 1 with sequential usernames and process count 2.

db_mode_1_sequential.4
Registrar with db_mode 1 with sequential usernames and process count 4.

db_mode_1_sequential.8
Registrar with db_mode 1 with sequential usernames and process count 8.

db_mode_2_sequential.1
Registrar with db_mode 2 with sequential usernames and process count 1.

db_mode_2_sequential.2
Registrar with db_mode 2 with sequential usernames and process count 2.

db_mode_2_sequential.4
Registrar with db_mode 2 with sequential usernames and process count 4.

db_mode_2_sequential.8
Registrar with db_mode 2 with sequential usernames and process count 8.


db_mode_0_sequential.1

Registrar with db_mode 0 with sequential usernames and process count 1.

additional SIPP args: -inf data/sequential_usernames.sipp

Used config file was registrar.cfg (log here), sipp scenario register_users.xml, sipp output screens are in db_mode_0_sequential.1.screen.

SAR statistics: platform dependent binary data, average values, all values.

SIPP command

sipp -nd -sf scenarios/register_users.xml -trace_screen -trace_rtt -domain "example.com" -r 20000 -l 32 -m 1000000 213.192.30.219:5060 -inf data/sequential_usernames.sipp

Test stopped after 1000000 iterations, maximum allowed simultaneous calls were 32; reached average call throughput was 9898 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 9898 requests per second
Failures 0
Retransmissions 0
Timeout 0
Elapsed Time 00:01:41:031 hour:min:sec:msec

response times response times - histogram CPU usage request times - histogram Shared memory usage


db_mode_0_sequential.2

Registrar with db_mode 0 with sequential usernames and process count 2.

additional SIPP args: -inf data/sequential_usernames.sipp

Used config file was registrar.cfg (log here), sipp scenario register_users.xml, sipp output screens are in db_mode_0_sequential.2.screen.

SAR statistics: platform dependent binary data, average values, all values.

SIPP command

sipp -nd -sf scenarios/register_users.xml -trace_screen -trace_rtt -domain "example.com" -r 20000 -l 32 -m 1000000 213.192.30.219:5060 -inf data/sequential_usernames.sipp

Test stopped after 1000000 iterations, maximum allowed simultaneous calls were 32; reached average call throughput was 9410 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 9410 requests per second
Failures 0
Retransmissions 0
Timeout 0
Elapsed Time 00:01:46:269 hour:min:sec:msec

response times response times - histogram CPU usage request times - histogram Shared memory usage


db_mode_0_sequential.4

Registrar with db_mode 0 with sequential usernames and process count 4.

additional SIPP args: -inf data/sequential_usernames.sipp

Used config file was registrar.cfg (log here), sipp scenario register_users.xml, sipp output screens are in db_mode_0_sequential.4.screen.

SAR statistics: platform dependent binary data, average values, all values.

SIPP command

sipp -nd -sf scenarios/register_users.xml -trace_screen -trace_rtt -domain "example.com" -r 20000 -l 32 -m 1000000 213.192.30.219:5060 -inf data/sequential_usernames.sipp

Test stopped after 1000000 iterations, maximum allowed simultaneous calls were 32; reached average call throughput was 8548 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 8548 requests per second
Failures 0
Retransmissions 0
Timeout 0
Elapsed Time 00:01:56:990 hour:min:sec:msec

response times response times - histogram CPU usage request times - histogram Shared memory usage


db_mode_0_sequential.8

Registrar with db_mode 0 with sequential usernames and process count 8.

additional SIPP args: -inf data/sequential_usernames.sipp

Used config file was registrar.cfg (log here), sipp scenario register_users.xml, sipp output screens are in db_mode_0_sequential.8.screen.

SAR statistics: platform dependent binary data, average values, all values.

SIPP command

sipp -nd -sf scenarios/register_users.xml -trace_screen -trace_rtt -domain "example.com" -r 20000 -l 32 -m 1000000 213.192.30.219:5060 -inf data/sequential_usernames.sipp

Test stopped after 1000000 iterations, maximum allowed simultaneous calls were 32; reached average call throughput was 8191 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 8191 requests per second
Failures 0
Retransmissions 0
Timeout 0
Elapsed Time 00:02:02:091 hour:min:sec:msec

response times response times - histogram CPU usage request times - histogram Shared memory usage


db_mode_1_sequential.1

Registrar with db_mode 1 with sequential usernames and process count 1.

additional SIPP args: -inf data/sequential_usernames.sipp

Used config file was registrar.cfg (log here), sipp scenario register_users.xml, sipp output screens are in db_mode_1_sequential.1.screen.

SAR statistics: platform dependent binary data, average values, all values.

SIPP command

sipp -nd -sf scenarios/register_users.xml -trace_screen -trace_rtt -domain "example.com" -r 20000 -l 32 -m 1000000 213.192.30.219:5060 -inf data/sequential_usernames.sipp

Test stopped after 1000000 iterations, maximum allowed simultaneous calls were 32; reached average call throughput was 3490 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 3490 requests per second
Failures 0
Retransmissions 0
Timeout 0
Elapsed Time 00:04:46:499 hour:min:sec:msec

response times response times - histogram CPU usage request times - histogram Shared memory usage


db_mode_1_sequential.2

Registrar with db_mode 1 with sequential usernames and process count 2.

additional SIPP args: -inf data/sequential_usernames.sipp

Used config file was registrar.cfg (log here), sipp scenario register_users.xml, sipp output screens are in db_mode_1_sequential.2.screen.

SAR statistics: platform dependent binary data, average values, all values.

SIPP command

sipp -nd -sf scenarios/register_users.xml -trace_screen -trace_rtt -domain "example.com" -r 20000 -l 32 -m 1000000 213.192.30.219:5060 -inf data/sequential_usernames.sipp

Test stopped after 1000000 iterations, maximum allowed simultaneous calls were 32; reached average call throughput was 2794 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 2794 requests per second
Failures 0
Retransmissions 0
Timeout 0
Elapsed Time 00:05:57:943 hour:min:sec:msec

response times response times - histogram CPU usage request times - histogram Shared memory usage


db_mode_1_sequential.4

Registrar with db_mode 1 with sequential usernames and process count 4.

additional SIPP args: -inf data/sequential_usernames.sipp

Used config file was registrar.cfg (log here), sipp scenario register_users.xml, sipp output screens are in db_mode_1_sequential.4.screen.

SAR statistics: platform dependent binary data, average values, all values.

SIPP command

sipp -nd -sf scenarios/register_users.xml -trace_screen -trace_rtt -domain "example.com" -r 20000 -l 32 -m 1000000 213.192.30.219:5060 -inf data/sequential_usernames.sipp

Test stopped after 1000000 iterations, maximum allowed simultaneous calls were 32; reached average call throughput was 2438 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 2438 requests per second
Failures 0
Retransmissions 0
Timeout 0
Elapsed Time 00:06:50:159 hour:min:sec:msec

response times response times - histogram CPU usage request times - histogram Shared memory usage


db_mode_1_sequential.8

Registrar with db_mode 1 with sequential usernames and process count 8.

additional SIPP args: -inf data/sequential_usernames.sipp

Used config file was registrar.cfg (log here), sipp scenario register_users.xml, sipp output screens are in db_mode_1_sequential.8.screen.

SAR statistics: platform dependent binary data, average values, all values.

SIPP command

sipp -nd -sf scenarios/register_users.xml -trace_screen -trace_rtt -domain "example.com" -r 20000 -l 32 -m 1000000 213.192.30.219:5060 -inf data/sequential_usernames.sipp

Test stopped after 1000000 iterations, maximum allowed simultaneous calls were 32; reached average call throughput was 2389 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 2389 requests per second
Failures 0
Retransmissions 0
Timeout 0
Elapsed Time 00:06:58:515 hour:min:sec:msec

response times response times - histogram CPU usage request times - histogram Shared memory usage


db_mode_2_sequential.1

Registrar with db_mode 2 with sequential usernames and process count 1.

additional SIPP args: -inf data/sequential_usernames.sipp

Used config file was registrar.cfg (log here), sipp scenario register_users.xml, sipp output screens are in db_mode_2_sequential.1.screen.

SAR statistics: platform dependent binary data, average values, all values.

SIPP command

sipp -nd -sf scenarios/register_users.xml -trace_screen -trace_rtt -domain "example.com" -r 20000 -l 32 -m 1000000 213.192.30.219:5060 -inf data/sequential_usernames.sipp

Test stopped after 1000000 iterations, maximum allowed simultaneous calls were 32; reached average call throughput was 4566 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 4566 requests per second
Failures 96
Retransmissions 1120
Timeout 96
Elapsed Time 00:03:39:010 hour:min:sec:msec

response times response times - histogram CPU usage request times - histogram Shared memory usage


db_mode_2_sequential.2

Registrar with db_mode 2 with sequential usernames and process count 2.

additional SIPP args: -inf data/sequential_usernames.sipp

Used config file was registrar.cfg (log here), sipp scenario register_users.xml, sipp output screens are in db_mode_2_sequential.2.screen.

SAR statistics: platform dependent binary data, average values, all values.

SIPP command

sipp -nd -sf scenarios/register_users.xml -trace_screen -trace_rtt -domain "example.com" -r 20000 -l 32 -m 1000000 213.192.30.219:5060 -inf data/sequential_usernames.sipp

Test stopped after 1000000 iterations, maximum allowed simultaneous calls were 32; reached average call throughput was 4319 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 4319 requests per second
Failures 96
Retransmissions 1152
Timeout 96
Elapsed Time 00:03:51:535 hour:min:sec:msec

response times response times - histogram CPU usage request times - histogram Shared memory usage


db_mode_2_sequential.4

Registrar with db_mode 2 with sequential usernames and process count 4.

additional SIPP args: -inf data/sequential_usernames.sipp

Used config file was registrar.cfg (log here), sipp scenario register_users.xml, sipp output screens are in db_mode_2_sequential.4.screen.

SAR statistics: platform dependent binary data, average values, all values.

SIPP command

sipp -nd -sf scenarios/register_users.xml -trace_screen -trace_rtt -domain "example.com" -r 20000 -l 32 -m 1000000 213.192.30.219:5060 -inf data/sequential_usernames.sipp

Test stopped after 1000000 iterations, maximum allowed simultaneous calls were 32; reached average call throughput was 2759 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 2759 requests per second
Failures 224
Retransmissions 2304
Timeout 224
Elapsed Time 00:06:02:485 hour:min:sec:msec

response times response times - histogram CPU usage request times - histogram Shared memory usage


db_mode_2_sequential.8

Registrar with db_mode 2 with sequential usernames and process count 8.

additional SIPP args: -inf data/sequential_usernames.sipp

Used config file was registrar.cfg (log here), sipp scenario register_users.xml, sipp output screens are in db_mode_2_sequential.8.screen.

SAR statistics: platform dependent binary data, average values, all values.

SIPP command

sipp -nd -sf scenarios/register_users.xml -trace_screen -trace_rtt -domain "example.com" -r 20000 -l 32 -m 1000000 213.192.30.219:5060 -inf data/sequential_usernames.sipp

Test stopped after 1000000 iterations, maximum allowed simultaneous calls were 32; reached average call throughput was 2789 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 2789 requests per second
Failures 192
Retransmissions 2209
Timeout 192
Elapsed Time 00:05:58:554 hour:min:sec:msec

response times response times - histogram CPU usage request times - histogram Shared memory usage


Test information

Test done by kubartv from jin on Thu Mar 29 10:12:50 CEST 2007.

SIPP version:
Sipp v1.1, version 20060829, built Mar 28 2007, 11:22:45. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Author: see source files.

Tested machine

Test done under user kubartv on 213.192.30.219, helping machine (if used) is 213.192.30.237, user kubartv.

Linux pres 2.6.17-2-686-bigmem #1 SMP Sat Sep 23 21:15:25 UTC 2006 i686 GNU/Linux

CPU

processor	: 0
vendor_id	: GenuineIntel
cpu family	: 15
model		: 4
model name	: Intel(R) Xeon(TM) CPU 3.00GHz
stepping	: 3
cpu MHz		: 3000.798
cache size	: 2048 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 5
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl cid cx16 xtpr
bogomips	: 6006.58

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 15
model		: 4
model name	: Intel(R) Xeon(TM) CPU 3.00GHz
stepping	: 3
cpu MHz		: 3000.798
cache size	: 2048 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 1
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 5
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl cid cx16 xtpr
bogomips	: 6000.67

Memory

             total       used       free     shared    buffers     cached
Mem:       8312532     232240    8080292          0      14388     154872
-/+ buffers/cache:      62980    8249552
Swap:      7807352          0    7807352

SER version

version: ser 2.0.0-rc1 (i386/linux) flags: STATS: Off, USE_IPV6, USE_TCP, USE_TLS, TLS_HOOKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, DBG_QM_MALLOC, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_DST_BLACKLIST ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535 poll method support: poll, epoll_lt, epoll_et, sigio_rt, select. @(#) $Id: main.c,v 1.228.2.2 2007/03/01 13:53:37 andrei Exp $ main.c compiled on 10:34:32 Mar 26 2007 with gcc 3.3.5

Graph descriptions

There are these graphs for each scenario:

response delay
Time for each response; on X-axis is request time, i.e. when was the request sent, on Y-axis is how long time was between sending request and receiving the response. This value is not the same as values measured by watching network traffic probably due to sipp processing delay.

response delay histogram
Histogram made from time differences between sending request and receiving response. It shows numbers of response times grouped by 10 ms.

CPU usage
Shows sumary for all monitored processes for given time. Monitored processors can be set within variables script when generating the output (not needed in runtime). This output is taken from top which collects this information for one second. It can be more than 100% in the case of more processors (for example tc4 has two hyperthreaded processors thus it can show values up to 400%).

sent request histogram
Shows numbers of sent requests grouped by one second. Sometimes it shows strange jumps (for example in t_relay scenario after shmem is gone)...

Test result notes

SIPP is set to allow at most 32 calls at the same time. This means that when there are 32 pending calls (waiting for response) it doesn't create new ones.