HTTPS performance tests

From Gcube Wiki
Jump to: navigation, search

Performance tests on HTTPS infrastructure

Performance tests have been performed in order to evaluate the exact overhead introduced by HTTPS on the gCube infrastructure.

Performance tool

In order to measure performance of the infrastructure by using HTTP and to evaluate the exact overhead by using HTTPS we used Apache JMeter. A small set of workload generator and data collection bash scripts have been produced. These scripts issue HTTP(S) requests with a SOAP body for loading up a particular service and collect statistics on latency. Besides, a small set of scripts to generate reports and charts using JMeter libraries have been used.

Test plans

In order to evaluate the overhead produced by using HTTPS connection several tests were carried out. The following test plans have been used:

1. 100 HTTP requests over 100 seconds

2. 100 HTTP requests over 10 seconds

3. 100 HTTPS requests over 100 seconds

4. 100 HTTPS requests over 10 seconds


Test plans 1 and 2 have been performed on a non-secure GHN (gcube-testing-node1).

Test plans 3 and 4 have been performed on a secure GHN (gcube-testing-node2).

Each request consists on a simple HTTP(S) request, with a SOAP body, to the GHN Manager service. In particular, a single request is an addRItoScope operation, which takes as input a valid scope expression, a service name and a service class; the scope is assigned to the local instance identified by the given name and class.

Results

In this section the results of the tests presented above are summarized and commented, focusing on the response time. The mean values are presented here in tables, the detailed graphics are shown in the appendix. Tables 1 and 2 summarize the overall performance of the addRItoScope operation using an HTTP connection and an HTTPS connection.


Performance results with HTTP connection
HTTP
Time range (s) 100 10
Average (ms) 62 70
Min (ms) 48 34
Max (ms) 263 329
90th%ile (ms) 77 102


Performance results with HTTPS connection
HTTPS
Time range (s) 100 10
Average (ms) 242 113
Min (ms) 67 104
Max (ms) 564 808
90th%ile (ms) 407 472


The tables show that the average response time is 62ms with an HTTP connection and 242ms with an HTTPS connection for the test plans 1 and 3. On the other hand, for the test plans 2 and 4 the tables show that the average response time is 70ms with an HTTP connection and 113ms with an HTTPS connection. In the case of an HTTP connection (with 100 HTTP requests over 100 seconds) the average response time varies between 48ms and 263ms, and for the 90% of the samples the response time is less than 77ms. In case of an HTTP connection (with 100 HTTP requests over 10 seconds) the average response time varies between 34ms and 329ms, and for the 90% of the samples the response time is less than 102ms.

In case of an HTTPS connection (with 100 HTTPS requests over 100 seconds) the average response time varies between 67ms and 564ms, and for the 90% of the samples the response time is less than 407ms. In case of an HTTPS connection (with 100 HTTPS requests over 10 seconds) the average response time varies between 104ms and 808ms, and for the 90% of the samples the response time is less than 472ms. The following table summarizes the overhead percentage introduced by using an HTTPS connection:


HTTPS overhead %
Time range (s) 100 10
Average % 74.38 38.05
Min (ms) 28.36 67.31
Max (ms) 53.37 59.28


According to these results, the overhead introduced (on the average response time) by using an HTTPS connection is equal to 74.38% with respect to the test plan with 100 requests over 100 seconds, and is equal to 38.05% with respect to the test plan with 100 requests over 10 seconds.

Appendix

100 HTTP requests over 100 seconds
100 HTTPS requests over 100 seconds


HTTP requests over 10 seconds


100 HTTPS requests over 10 seconds