Prerequisites

Appserver

Jetty, 1 cpu core

Database

Postgre, 1 cpu core

Heapmem, appserver

2GB

Nätverk client/server

50Mbit

Virtual servers

1 (appserver and database on same)
2 cpu cores approx 2 Ghz

Testcase

Group with 3 companies and 4 new loans and full soft information

Version

Capitex Företagslån 2020.4

Data size

1 000 stored cases

Metrics

Test

Time

Comment

First start of GUI

8 sek

3MB (compressed). Server CPU time: around 1.5 sek

Second start of GUI

5 sek

450kb (compressed). Server CPU time: around1.5 sek

Create Credit PM

4.11 sek

24 pages, 215kb

Create Actual/Forecast graphs and data

0.3 sek

2 pages, 14 kb

Save case from GUI

0.47 sek

600kb

Open case in GUI

0.21 sek

600kb

List (own) calculations in GUI

0.16 sek

Webservice case calculation from java apache CXF client

1.2 sek

CXF = slow deserialize

Webservice case calculation JSON/SOAP-XML

180 ms

Webservice one company calculation JSON/SOAP-XML

120 ms

Webservice save case JSON/SOAP-XML

350 ms

Webservice open case JSON/SOAP-XML

201 ms

Calculation calls scaleability metrics

The time is the time to complete all calculations. Each call is done in ther own thread to simulate multiple concurrent clients.

The test has been run 10 times and the time is the average. (4 GB Heap)

Simultanious calculation calls

1 CPU Core

2 CPU Core

3 CPU Core

4 CPU Core

2

351 ms

182 ms

181 ms

183 ms

3

540 ms

285 ms

179 ms

184 ms

4

728 ms

353 ms

239 ms

181 ms

5

950 ms

446 ms

301 ms

242 ms

6

1 050 ms

546 ms

359 ms

269 ms

7

1 288 ms

638 ms

419 ms

329 ms

8

1 512 ms

733 ms

482 ms

363 ms

9

1 737 ms

844 ms

547 ms

436 ms

10

1 921 ms

960 ms

649 ms

492 ms

If you have 10 concurrent calculation calls and 1 cpu, then a calculation call can take upp to around 2 sek to perform.

If you have 10 concurrent calculation calls and 4 cpu, then a calculation call can take upp to around 0.5 sek to perform.

Forecast of "normal" usage of Capitex Företagslån GUI

Prerequisites

Some of the measured time above is wait for disk/network etc, but here we use that metrics as its only cpu time...

Action in application

Action performed/day per user

Approx. Maximum server
cpu-time consumed
(both appserv + database)

Network usage

Start the program

5 times a day

7.5 s

2 250 kb

Open a case

8 times a day

1.6 s

4 800 kb

Saves a case

20 times a day

9.4 s

12 000 kb

Show PDF or print

2 times a day

8.2 s

1 600 kb

Search case (own cases)

12 times a day

1.9 s

300 kb

Tot service req

Approx 50 per day

30 s

20 MB

Forecast based on no of users

Action in application

500 users

Network usage

Start the program

5 calls/min

Open a case

8 calls/min

Saves a case

20 calls/min

Show PDF or print

2 calls/min

Search case (own cases)

12 calls/min

Approx tot service req

50 calls/min 

3 Mbit/s

Forecast CPU usage based on no of users and no of CPUs

User count

Approx Req/min

Network usage

1 CPU
2 GB

2 CPU
4 GB

4 CPU
8 GB

8 CPU
16 GB

500

50

3 Mbit/s

50%

25%

12%

6%

1 000

100

6 Mbit/s

100%

50%

25%

12%

2 000

200

12 Mbit/s

n/a

100%

50%

25%

4 000

400

24 Mbit/s

n/a

n/a

100%

50%

Database storage

Data

Size

Data

Size

Case "input"

600kb

Case "results"

1MB

UC report

900 kb

Credit PM

300 kb

Other documents

600kb

Approx size per case

3.5 MB

1 user

10 users

100 users

1000 users

2000 users

1 new cases/week

increase data
3.5 MB/week
182 MB/year 

increase data
35 MB/week
1 820 MB/year

increase data
350 MB/week
18 GB/year

increase data
3.5 GB/week
180 GB/year

increase data
7 GB/week
360 GB/year

Case lifelength 

3 years

Total need of case data storage

500 MB

5 GB

50 GB

500 GB

1 000 GB

Recommended database size

2 GB

20 GB

200 GB

2 000 GB

4 000 GB