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 9824 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 9824 requests per second
Failures 0
Retransmissions 0
Timeout 0
Elapsed Time 00:01:41:793 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 9845 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 9845 requests per second
Failures 0
Retransmissions 0
Timeout 0
Elapsed Time 00:01:41:574 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 9435 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 9435 requests per second
Failures 0
Retransmissions 0
Timeout 0
Elapsed Time 00:01:45:989 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 9301 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 9301 requests per second
Failures 0
Retransmissions 0
Timeout 0
Elapsed Time 00:01:47:510 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 3466 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 3466 requests per second
Failures 0
Retransmissions 0
Timeout 0
Elapsed Time 00:04:48:553 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 3254 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 3254 requests per second
Failures 0
Retransmissions 0
Timeout 0
Elapsed Time 00:05:07:277 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 3298 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 3298 requests per second
Failures 0
Retransmissions 0
Timeout 0
Elapsed Time 00:05:03:245 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 3182 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 3182 requests per second
Failures 0
Retransmissions 0
Timeout 0
Elapsed Time 00:05:14:274 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 5105 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 5105 requests per second
Failures 96
Retransmissions 864
Timeout 96
Elapsed Time 00:03:15:904 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 5133 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 5133 requests per second
Failures 64
Retransmissions 864
Timeout 64
Elapsed Time 00:03:14:803 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 5121 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 5121 requests per second
Failures 64
Retransmissions 832
Timeout 64
Elapsed Time 00:03:15:277 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 5096 calls per second.

Iterations 1000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 5096 requests per second
Failures 64
Retransmissions 832
Timeout 64
Elapsed Time 00:03:16:219 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 13:16:26 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    4300220    4012312          0      62784    4111516
-/+ buffers/cache:     125920    8186612
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, USE_PTHREAD_MUTEX, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_DST_BLACKLIST 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 13:09:19 Mar 29 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.