Skip to main content
Version: 4.6.x.x LTS

Appendix C - Performance Samples

Test setup

The hosts used for testing were of the type(https://docs.microsoft.com/en-us/azure/cloud-services/cloud-services-sizes-specs#dv3-series) (Azure) with CentOS 7.5, with the following parameters:

vCPUMemory: GiBTemp Storage (SSD) GiBMax NICs / Network Bandwidth
8322004 / high

nevisProxy configuration

The purpose of the performance samples here is to show the differences of the session store solutions. That is why we used a simple nevisProxy configuration, consisting of a SessionManagementFilter, an IdentityCreationFilter, and a TestServlet as a backend. The load generating tool created a number of users under a given time, where each user had an initial request, then a login with a nevisAuth authentication, followed by some subsequent authentication requests. The same tests were run with all session store solutions.

Local session store

The first nevisProxy setup, with a local session store, uses a LocalSessionStoreServlet to save the sessions. In this configuration, a load balancer needs to make sure that session stickiness is enabled. This means that each request for the same session has to be sent to the same nevisProxy instance.

Number of UsersNumber of ProxiesNumber of Instances per HostRequest/SecMean Response Time
64 0004115006 ms
160 00041380011 ms

Remote session store

The second nevisProxy setup, with a remote session store, includes a MySQLSessionStoreServlet, using two DB hosts with replication between them to save the sessions. This setup works without the need of session stickiness, but it is slower due to the fact that the data has to be saved into a database.

Number of UsersNumber of ProxiesNumber of Instances per HostRequest/SecMean Response Time
10 0004122025 ms
25 0004155036 ms
50 000411200228 ms

Hybrid session store

The final setup, with a hybrid session store, includes the MultiLevelSessionStoreServlet. This setup combines the two solutions above. It uses a local session store to have a fast session cache for the requests, but also stores the sessions in the configured remote session store (two DB hosts with replication) for fail-over scenarios. Because this setup contains a local session store, the use of a session-sticky load balancer is required.

Number of UsersNumber of ProxiesNumber of Instances per HostRequest/SecMean Response Time
64 0004115006 ms
160 00041380010 ms
200 00041470017 ms

The system configuration, the nevisProxy configuration and infrastructure can heavily affect the performance. To measure the real performance, running load tests on the target environment is therefore always recommended. If you have significantly different results on your system or if you require a higher performance, get in contact with Nevis for a consult.

SSD vs HDD

Performance tests of HDD disks against SDD-based disks gave the following results (see the next table). For all tests, we used four proxy instances, each on a different host. The proxy hosts used an SSD for each test.

Disc type (DB hosts only)Number of UsersRequest/SecMean Response Time
SSD24000510368
HDD24000508249
SSD800001659197
HDD80000 (17% failed)137810745