Registrar performance tests

Testing SER as registrar with database and testing important parts of it like uri to uid translation, loading attributes, ...

SER used 1200 MB of shared memory.

throughput

save_only
Registrar only - there is only save called and no other functions.

save_uid
Registrar only - there is only only UID get from mesage and save called.

uri2uid_only
Lookup_domain and lookup_user.

load_attrs_only
Loading user attributes only.

uri2uid_with_attrs
Lookup_domain and lookup_user and reading user attributes.

registrar_no_attrs
Registrar with lookup_domain and lookup_user.

full
Registrar with lookup_domain and lookup_user and loading user attrs.


save_only

Registrar only - there is only save called and no other functions.

additional SIPP args: -inf ../data/1m_random_uid.sipp

Used config file was save_only.cfg (log here), sipp scenario register_users_one_contact.xml, sipp output screens are in save_only.screen.

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

SIPP command

sipp -nd -sf scenarios/register_users_one_contact.xml -trace_screen -trace_rtt -domain "example.com" -r 20000 -l 32 -m 2000000 213.192.30.219:5060 -inf ../data/1m_random_uid.sipp

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

Iterations 2000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 1531 requests per second
Failures 0
Retransmissions 0
Timeout 0
Elapsed Time 00:21:46:460 hour:min:sec:msec

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


save_uid

Registrar only - there is only only UID get from mesage and save called.

additional SIPP args: -inf ../data/1m_random_uid.sipp

Used config file was save_uid.cfg (log here), sipp scenario register_users_one_contact.xml, sipp output screens are in save_uid.screen.

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

SIPP command

sipp -nd -sf scenarios/register_users_one_contact.xml -trace_screen -trace_rtt -domain "example.com" -r 20000 -l 32 -m 2000000 213.192.30.219:5060 -inf ../data/1m_random_uid.sipp

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

Iterations 2000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 1083 requests per second
Failures 0
Retransmissions 14658
Timeout 0
Elapsed Time 00:30:46:664 hour:min:sec:msec

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


uri2uid_only

Lookup_domain and lookup_user.

additional SIPP args: -inf ../data/1m_random_uid.sipp

Used config file was uri2uid.cfg (log here), sipp scenario register_users_one_contact.xml, sipp output screens are in uri2uid_only.screen.

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

SIPP command

sipp -nd -sf scenarios/register_users_one_contact.xml -trace_screen -trace_rtt -domain "example.com" -r 20000 -l 32 -m 2000000 213.192.30.219:5060 -inf ../data/1m_random_uid.sipp

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

Iterations 2000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 3268 requests per second
Failures 0
Retransmissions 0
Timeout 0
Elapsed Time 00:10:11:986 hour:min:sec:msec

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


load_attrs_only

Loading user attributes only.

additional SIPP args: -inf ../data/1m_random_uid.sipp

Used config file was load_attrs.cfg (log here), sipp scenario register_users_one_contact.xml, sipp output screens are in load_attrs_only.screen.

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

SIPP command

sipp -nd -sf scenarios/register_users_one_contact.xml -trace_screen -trace_rtt -domain "example.com" -r 20000 -l 32 -m 2000000 213.192.30.219:5060 -inf ../data/1m_random_uid.sipp

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

Iterations 2000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 2951 requests per second
Failures 0
Retransmissions 344
Timeout 0
Elapsed Time 00:11:17:739 hour:min:sec:msec

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


uri2uid_with_attrs

Lookup_domain and lookup_user and reading user attributes.

additional SIPP args: -inf ../data/1m_random_uid.sipp

Used config file was uri2uid_with_attrs.cfg (log here), sipp scenario register_users_one_contact.xml, sipp output screens are in uri2uid_with_attrs.screen.

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

SIPP command

sipp -nd -sf scenarios/register_users_one_contact.xml -trace_screen -trace_rtt -domain "example.com" -r 20000 -l 32 -m 2000000 213.192.30.219:5060 -inf ../data/1m_random_uid.sipp

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

Iterations 2000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 1665 requests per second
Failures 0
Retransmissions 95
Timeout 0
Elapsed Time 00:20:00:967 hour:min:sec:msec

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


registrar_no_attrs

Registrar with lookup_domain and lookup_user.

additional SIPP args: -inf ../data/1m_random_uid.sipp

Used config file was no_attrs.cfg (log here), sipp scenario register_users_one_contact.xml, sipp output screens are in registrar_no_attrs.screen.

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

SIPP command

sipp -nd -sf scenarios/register_users_one_contact.xml -trace_screen -trace_rtt -domain "example.com" -r 20000 -l 32 -m 2000000 213.192.30.219:5060 -inf ../data/1m_random_uid.sipp

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

Iterations 2000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 1027 requests per second
Failures 0
Retransmissions 14622
Timeout 0
Elapsed Time 00:32:27:580 hour:min:sec:msec

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


full

Registrar with lookup_domain and lookup_user and loading user attrs.

additional SIPP args: -inf ../data/1m_random_uid.sipp

Used config file was full.cfg (log here), sipp scenario register_users_one_contact.xml, sipp output screens are in full.screen.

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

SIPP command

sipp -nd -sf scenarios/register_users_one_contact.xml -trace_screen -trace_rtt -domain "example.com" -r 20000 -l 32 -m 2000000 213.192.30.219:5060 -inf ../data/1m_random_uid.sipp

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

Iterations 2000000
Max concurent calls 32
Max allowed Rate 20000 requests per second
Average Call Rate 793 requests per second
Failures 0
Retransmissions 13062
Timeout 0
Elapsed Time 00:42:01:542 hour:min:sec:msec

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


Registrar performance tests settings

Script used to run scenario is here.

Variables were set like this.

Test information

Test done by kubartv from jin on Wed May 16 13:17:08 CEST 2007.

SIPP version:
Sipp v1.1, version 20060829, built Apr 18 2007, 18:38:31. 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 none, user root.

Linux pres 2.6.18-4-686-bigmem #1 SMP Mon Mar 26 18:37:22 UTC 2007 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.426
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	: 6004.80

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 15
model		: 4
model name	: Intel(R) Xeon(TM) CPU 3.00GHz
stepping	: 3
cpu MHz		: 3000.426
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.59

Memory

             total       used       free     shared    buffers     cached
Mem:       8312600    5265588    3047012          0      70068    5055956
-/+ buffers/cache:     139564    8173036
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, 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 13:41:19 May 9 2007 with gcc 4.1.2

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.