REALTHINCLIENT SDK TEST RESULTS

RealThinClient SDK v6.05

REST + JSON Server built using the RealThinClient SDK v6.05 (available to developers with a RealThinClient Subscription ) has been stress-tested inside a 100 MBit LAN with 9 Client PCs (1 – 8 + X) and 1 Server. Clients 1 to 8 have a 662 MHz CPU, Client X has a dual-core 2,2 GHz CPU, the Server has a dual-core 2,8 GHz CPU. In this test, all Client PCs have started by opening 10 connections, sending 20.000 requests to the Server from each connection in a single “batch”, then closing all connections and measuring the time it took for each Client to complete the batch (open all connections + send all requests + receive all responses + close all connections). The number of connections was increased every batch by 10 per Client PC and the procedure was repeated.

Results of batch tests with 100, 200, 300, 400, 500, 600, 700, 800, 900 and 1.000 active connections:

Results of batch tests with 1.100, 1.200, 1.300, 1.400, 1.500, 1.600, 1.700, 1.800, 1.900 and 2.000 active connections:

Results of batch tests with 2.100, 2.200, 2.300, 2.400, 2.500, 2.600, 2.700, 2.800, 2.900 and 3.000 active connections:

Results of batch tests with 3.100, 3.200, 3.300, 3.400, 3.500, 3.600, 3.700, 3.800, 3.900 and 4.000 active connections:

Results of batch tests with 4.100, 4.200, 4.300, 4.400, 4.500, 4.600, 4.700, 4.800, 4.900 and 5.000 active connections:

For comparison reasons (to see how much the CPU on the Server can affect performance), here are the results of the same stress-test
when the Windows Resource Manager (perfmon.exe) is RUNNING on the Server and draining the CPU by 25% – 45% …

RealThinClient SDK v3.76

RealThinClient SDK v3.76 (available to developers with a RealThinClient Subscription ) has been extensively stress-tested using 9.900 concurrent connections over HTTPS with a stress-test running one full week without a break (24/7). There were NO errors throughout the whole stress-test, there were NO problems closing any of the RTC Clients nor the RTC Server and there were absolutely NO memory leaks on either of the Clients nor the Server (FastMM 4.94 used as Memory Manager with memory leak reporting and StreamSec Tools 2.1.9.240 used for SSL encryption).

In this stress-test, the RTC Server has responded to more than 394 million requests from RTC Clients, which have opened and closed more than 2,7 million connections to the Server. I have been changing test parameters on all Clients once every 24 hours, so that most RTC SDK properties and settings have been tested for cca 24 hours each.

Here is one Screenshot of a RTC Server showing how the RealThinClient SDK v3.76 is being stress-tested by simulating 9.900 concurrent clients, where each Client is sending a remote function call to the Server, waiting for the result and then sending the next call in a continuous loop, flooding the Server with requests (image shrinked here to reduce file size):

What you see above are 11 Client PCs, each running 3 instances of the AppClient demo, each AppClient instance using 64 threads in MultiThreaded mode to send remote function calls through 300 concurrent connections to the Server (11 x 3 x 300 = 9.900 connections). The Server is running in MultiThreaded mode and using 64 threads to handle all connections simultaneously.

Each vertical line on each AppClient instance represents a connection to the Server, where the red color shows the percentage of calls to be made in the current loop and the green/cyan color shows the percentage of results received in the current loop. AppClients were all working in multi-threaded mode and were set up to use different settings, while every connection is set up to make 50 remote calls to the Server per loop, and each loop is repeated one second after the last one was finished, which results in an endless loop of remote calls (until stopped).

RealThinClient SDK v2.47 –Extensive Stress-Test

Test running time: ~ 14 Days and 14 Hours (350 Hours and 22 minutes)
Connections in use: 2.000 (10 x 200)
Server: Dual-Core AMD X2 at 4,4 GHz (2 x 2,2 GHz) with 2 GB RAM
Average processing speed: 518,5 req/sec
Average data transfer rate: 33,1 MBit/sec
Total requests processed: 653.960.000
10
Client PCs (200 connections each):
7 x Pentium III at 667 MHz with 256 MB RAM
3 x Pentium III at 650 MHz with 384 MB RAM
– connected to one 24-port 100 MBit switch
The purpose of this test was to see how stable the Clients and the Server are
when generating Extreme Load for a very long time (350 Hours), without a pause.
There were no problems, the test would still be running if I hadn’t stopped it.

For performance tests, please check other test results (below).

Test running time: 1.261.336 seconds (14 days, 14:22 Hours)
CPU
[MHz]
Data
Structure
Data
Format
Auto-
Encrypt
Auto-
Compress
Requests
processed
Bytes/
Request
Bytes/
Response
Req/
sec
Bytes per
second
Memory
in use
Clients with 200 connections active (all at the same time)
667
Simple
RTC
No
No
81.120.000
180
54
64,3
15.046
43 MB
667
Simple
RTC
Yes
No
90.000.000
192
65
71,4
18.350
44 MB
667
Simple
RTC
No
Yes
90.160.000
180
54
71,5
16.731
43 MB
667
Simple
RTC
Yes
Yes
83.880.000
192
65
66,5
17.091
43 MB
650
Simple
XML
No
No
86.760.000
855
176
68,8
70.933
42 MB
667
Complex
RTC
No
No
45.280.000
13.975
2.321
35,9
585.026
47 MB
667
Complex
RTC
Yes
No
54.600.000
13.961
2.330
43,3
705.400
47 MB
667
Complex
RTC
No
Yes
46.240.000
2.432
2.321
36,7
174.435
49 MB
650
Complex
RTC
Yes
Yes
45.280.000
2.443
2.332
35,9
171.423
46 MB
650
Complex
XML
No
No
30.640.000
53.268
52.428
24,3
2.568.413
57 MB
Server with 2.000 connections active
4.400
Both
Both
Yes
Yes
653.960.000
518,5
4.342.848
206 MB


Since all Clients were connected to the same Server during this test, all parameter combinations have been in use at the same time, sending simple and complex data structures to the server, receiving simple and complex results. Because of this and very high network load during the test, this was a good stress-test in a flooded environment, but it should NOT be seen as a performance test, since it is not.

Information provided in the table above is only to show you how load was distributed between clients when they are sending different-size requests. All results should be evaluated as a whole, showing you what would happen if all these clients would be hitting the Server continually for 14 days, without a pause.

Since the RealThinClient SDK supports 12 simple data types (boolean, integer, largeint, float, currency, datetime,string, text, widestring, variable, exteption, byte stream) and 3 complex data types (records, arrays and datasets),
where every element inside a complex data type can be of ANY other data type, including complex data types,the resulting structure used in this stress-test was quite big (14-53 KB). And to test how sending and receiving of all those data types works, the same data was packed again on the Server and sent back to the Client.
For performance tests, please check the other test results (below).

RealThinClient SDK v2.16 – using RTC and XML-RPC formats

Test running time: ~ 7 days, 23 hours
Connections in use: 600 (12 x 50)
Total processed: 2.252.950.000 requests
Test running time: ~ 4 days, 16 hours
Connections in use: 3.600 (12 x 300)
Total processed: 859.170.000 requests
Server: Dual-Core AMD X2 at 4,4 GHz (2 x 2,2 GHz) with 2 GB RAM
Average processing speed: 3278 req/sec
12 Client PCs:
9 x Pentium III at 667 MHz with 256 MB RAM
3 x Pentium III at 650 MHz with 384 MB RAM
– connected to one 24-port 100 MBit switch
Server: Dual-Core AMD X2 at 4,4 GHz (2 x 2,2 GHz) with 2 GB RAM
Average processing speed: 2137 req/sec
12 Client PCs:
9 x Pentium III at 667 MHz with 256 MB RAM
3 x Pentium III at 650 MHz with 384 MB RAM
– connected to one 24-port 100 MBit switch
Test running time: 687.284 seconds (7 days, 22:54 Hours)
CPU
[MHz]
Format Encrypt Comp
Requests
processed
Req /
sec
Memory
in use
Clients with 50 connections active
667
RTC
No
No
182.300.000
265
36 MB
667
RTC
No
No
207.450.000
302
39 MB
667
RTC
Yes
No
181.050.000
263
37 MB
667
RTC
Yes
No
207.900.000
302
37 MB
667
RTC
Yes
No
180.250.000
262
37 MB
667
RTC
No
Yes
211.100.000
307
39 MB
667
RTC
No
Yes
193.300.000
281
40 MB
667
RTC
Yes
Yes
207.600.000
302
39 MB
650
RTC
Yes
Yes
195.450.000
284
39 MB
667
XML
No
No
166.950.000
243
38 MB
650
XML
No
No
159.200.000
232
39 MB
650
XML
No
No
160.400.000
233
38 MB
Server with 600 connections active
4.400
Both
Yes
No
2.252.950.000
3.278
103 MB
Test running time: 402.135 seconds (4 days, 15:42 Hours)
CPU
[MHz]
Data
Format
Encrypt Comp
Requests
processed
Req /
sec
Memory
in use
Clients with 300 connections active
667
RTC
No
No
122.130.000
304
42 MB
667
RTC
No
No
62.280.000
155
43 MB
667
RTC
No
No
86.370.000
215
41 MB
667
RTC
No
No
111.360.000
277
42 MB
667
RTC
Yes
Yes
70.170.000
174
43 MB
667
RTC
Yes
Yes
89.850.000
223
43 MB
667
RTC
Yes
Yes
68.400.000
170
42 MB
667
RTC
Yes
Yes
62.790.000
156
46 MB
667
XML
No
No
43.320.000
108
45 MB
650
XML
No
No
44.940.000
112
44 MB
650
XML
No
No
46.230.000
115
41 MB
650
XML
No
No
51.330.000
128
44 MB
Server with 3.600 connections active
4.400
Both
Yes
No
859.170.000
2.137
379 MB

RealThinClient SDK v1.9j – using the RTC format

Test started on Sunday, August 6th 2006 – 19:47 CET
Test closed on Friday, August 11th 2006 – 19:27 CET
Test running time: ~ 5 days
Connections in use: 600 (12 x 50)
Total processed: 2.479.536.000 requests
Test started on Tuesday, July 4th 2006 – 16:01 CET
Test closed on Friday, July 7th 2006 – 17:01 CET
Test running time: 3 days, 1 hour
Connections in use: 3000
Requests processed: 725,4 million
Server: Dual-Core AMD X2 at 4,4 GHz (2 x 2,2 GHz) with 2 GB RAM
Average processing speed: 5297 req/sec
Total connections in use: 60012 Client PCs:
9 x Pentium III at 667 MHz with 256 MB RAM
3 x Pentium III at 650 MHz with 384 MB RAM
– connected to one 24-port 100 MBit switch
Server: Dual-processor AMD X2 at 4,4 GHz with 2 GB RAM
Average processing speed: 2760 req/sec
Total connections in use: 300012 Client PCs:
3 x Pentium III at 650 MHz with 384 MB RAM
9 x Pentium III at 667 MHz with 256 MB RAM
– connected to one 24-port 100 MBit switch
Test running time: 430.800 seconds (4 days, 23:40 Hours)
CPU
[MHz]
Encrypt Compress
Requests
processed
Req /
sec
Memory
in use
Clients with 50 connections active
667
Yes
Yes
207.049.300
481
42.281 KB
667
Yes
No
207.735.000
482
41.031 KB
667
No
Yes
207.404.400
481
41.031 KB
667
No
No
205.995.900
478
40.969 KB
667
Yes
Yes
207.633.400
482
42.219 KB
667
Yes
No
206.823.600
480
40.969 KB
667
No
Yes
206.831.400
480
42.281 KB
667
No
No
206.435.000
479
41.031 KB
667
Yes
Yes
207.022.400
481
42.219 KB
650
No
Yes
206.584.800
480
42.281 KB
650
Yes
No
205.028.700
476
40.969 KB
650
No
No
204.992.100
476
40.969 KB
Server with 600 connections active
4.400
No
No
2.479.536.000
5.297
101.738 KB
Detailed Test Results can be download here:
SDK19j_16T_3000con.zip ( 1,8 MB log file )

RealThinClient SDK v1.8 – different Memory Managers – 512 Threads

Server: Dual-processor AMD X2 at 4,4 GHz with 2 GB RAM
13 Client PCs:
3 x Pentium III at 650 MHz with 384 MB RAM
10 x Pentium III at 667 MHz with 256 MB RAM
– connected to one 24-port 100 MBit switch
Thread Pool Size: 512
1) FastMM 4.56 (optimized)
2) BucketMem_ASM (optimized)
3) Nexus DB MM V3
4) RTL (standard in Delphi 7)
All 13 Client PCs were running the RTC SDK AppClient Demo with the Multiple Connection Flood test,using 300 connections in Multithreaded mode (pool size set to 16 Threads) with automatic compression and encryption to constantly flood the Server with remote function calls (total 3.900 connections).Server was running the RTC SDK AppServer Demo in multithreaded mode (using 512 Threads) with automatic encryption and compression.
AppServer Performance:
Different MMs, 512 Threads, 3.900 Connections:
AppServer Memory Usage:
Different MMs, 512 Threads, 3.900 connections:
Complete Test Results can be downloaded here: AppServerTest512T.zip

RealThinClient SDK v1.8 –different Memory Managers – 16 Threads

Server: Dual-processor AMD X2 at 4,4 GHz with 2 GB RAM
13 Client PCs:
3 x Pentium III at 650 MHz with 384 MB RAM
10 x Pentium III at 667 MHz with 256 MB RAM
– connected to one 24-port 100 MBit switch
Thread Pool Size: 16
1) FastMM 4.56 (optimized)
2) BucketMem_ASM (optimized)
3) Nexus DB MM V3
4) RTL (standard in Delphi 7)
All 13 Client PCs were running the RTC SDK AppClient Demo with the Multiple Connection Flood test,using 300 connections in Multithreaded mode (pool size set to 16 Threads) with automatic compression and encryption to constantly flood the Server with remote function calls (total 3.900 connections).
Server was running the RTC SDK AppServer Demo in multithreaded mode(using 16 Threads) with automatic encryption and compression.
Winner in those RTC SDK Tests is FastMM 4.56 (best performance and lowest memory usage) and the worst possible results were achieved using the standard Delphi Runtime Library (RTL – awful performance with highest memory usage).
AppServer Performance:
Different MMs, 16 Threads, 3.900 Connections:
AppServer Memory Usage:
Different MMs, 16 Threads, 3.900 connections:
Complete Test Results can be downloaded here: AppServerTest16T.zip

RealThinClient SDK v1.8 –tests with BucketMem and FastMM4

Server: Dual-processor AMD X2 at 4,4 GHz (2 x 2,2 GHz) with 2 GB RAM
14 Client PCs:
1 x AMD at 1,2 GHz with 768 MB RAM
3 x Pentium III at 650 MHz with 384 MB RAM
10 x Pentium III at 667 MHz with 256 MB RAM
– connected to one 24-port 100 MBit switch
Compiled with BucketMem_ASM and FastMove
Encryption
Start: 18. Dec 2005, 02:35 CET
End: 18. Dec 2005, 12:05 CET
Test running: 9:30 Hours
CPU
Loop
Conn
Requests
processed
in 9:30 h
650
100
300
4.484.390
650
100
300
4.799.530
650
100
300
4.627.900
667
100
300
4.710.240
667
100
300
4.738.880
667
100
300
4.829.420
667
100
300
5.459.790
667
100
300
4.798.930
667
100
300
5.351.810
667
100
300
5.173.650
667
100
300
5.096.800
667
100
300
5.213.710
667
100
300
5.207.600
1200
100
300
3.528.050
TOTAL 4.200
68.020.700
Avg speed
1.989/sec
Encryption and Compression
Start: 19. Dec 2005, 19:55 CET
End: 20. Dec 2005, 11:15 CET
Test running: 15:20 Hours
CPU
Loop
Conn
Requests
processed
in 15:20 h
650
100
300
7.248.490
650
100
300
7.571.220
650
100
300
7.164.420
667
100
300
7.616.760
667
100
300
8.819.700
667
100
300
7.312.270
667
100
300
7.550.070
667
100
300
8.219.710
667
100
300
8.309.190
667
100
300
7.039.080
667
100
300
7.513.480
667
100
300
7.891.810
667
100
300
7.585.040
1200
100
300
4.919.000
TOTAL 4.200
104.760.240
Avg speed
1.897/sec
Compiled with FastMM4 using memory corruption/leak detection
Standard (no encryption)
Start: 13. Dec 2005, 14:00 CET
End: 16. Dec 2005, 23:00 CET
Test running: 3 Days, 9 Hours
CPU
Loop
Conn
Requests
processed
in 81 Hours
650
1.000
1.000
30.193.250
650
1.000
1.000
30.209.600
650
1.000
1.000
30.259.420
667
1.000
1.000
29.302.720
667
1.000
1.000
30.201.760
667
1.000
1.000
30.202.450
667
1.000
1.000
30.218.720
667
1.000
1.000
30.174.380
667
1.000
1.000
30.181.680
667
1.000
1.000
30.186.840
667
1.000
1.000
30.258.650
667
1.000
1.000
30.255.470
667
1.000
1.000
30.359.190
1200
1.000
1.000
43.322.270
TOTAL 14.000
435.326.400
Avg speed
1.492/sec
Encryption
Start: 11. Dec 2005, 21:50 CET
End: 13. Dec 2005, 11:50 CET
Test running: 1 Day, 14 Hours
CPU
Loop
Conn
Requests
processed
in 38 Hours
650
100
300
13.102.270
650
100
300
13.332.510
650
100
300
12.987.920
667
100
300
12.629.760
667
100
300
12.509.920
667
100
300
12.869.970
667
100
300
12.656.200
667
100
300
12.777.510
667
100
300
12.977.090
667
100
300
12.780.780
667
100
300
12.689.090
667
100
300
12.959.970
667
100
300
13.409.940
1200
100
300
11.418.100
TOTAL 4.200
179.101.030
Avg speed
1.309/sec

RealThinClient SDK v1.7 – RTLMM using Encryption

Server: Dual-processor AMD X2 at 4,4 GHz (2 x 2,2 GHz) with 2 GB RAM

14 Client PCs:
1 x AMD at 1,2 GHz with 768 MB RAM
3 x Pentium III at 650 MHz with 384 MB RAM
10 x Pentium III at 667 MHz with 256 MB RAM
– connected to one 24-port 100 MBit switch

Compiled using Delphi’s standard Memory Manager
Test started on October 26th 2005, 14:30 CET

Test completed on October 28th 2005, 20:00 CET

Test running time: 2 Days, 5 Hours and 30 Minutes
CPU
Loop
Conn
Requests processed
in 6:30 h
in 18:30 h
in 29:30 h
in 42:35 h
in 53:30 h
650
500
300
1.090.830
2.849.930
4.580.180
6.489.320
8.097.820
650
500
300
1.032.120
2.699.810
4.230.750
6.203.930
7.796.690
650
500
300
932.460
2.718.260
4.352.190
6.321.230
7.949.540
667
500
300
894.120
2.567.970
4.310.360
6.048.990
7.649.210
667
500
300
899.920
2.694.580
4.221.340
6.146.630
7.650130
667
500
300
899.360
2.688.920
4.362.890
6.299.960
8.009.900
667
500
300
986.450
2.689.610
4.351.670
6.299.110
7.799.860
667
500
300
980.450
2.789.310
4.377.870
6.311.810
7.946.830
667
500
300
1.002.360
2.690.720
4.287.190
6.215.860
7.948.460
667
500
300
1.122.110
2.999.470
4.400.450
6.375.350
7.949.890
667
500
300
935.150
2.811.440
4.360.110
6.363.090
7.949.140
667
500
300
900.840
2.724.400
4.370.270
6.232.260
7.879.700
667
500
300
955.840
2.849.840
4.449.470
6.372.140
7.950990
1200
500
300
899.940
2.501.850
3.905.070
5.724.210
7.208.540
TOTAL 4.200
13.532.080
38.276.110
60.609.810
87.403.890
109.786.700
Avg speed
578,2/sec
574,7/sec
570,7/sec
570,1/sec
570/sec
Delta
6:30 h
12:00 h
11:00 h
13:05 h
10:55 h
Processed
13.532.080
24.744.030
22.333.700
26.794.080
22.382.810
Speed
578,2/sec
572,7/sec
564/sec
568,9/sec
569,5/sec

RealThinClient SDK v1.7 –Encryption and manual connect + disconnect

Server: Dual-processor AMD X2 at 4,4 GHz (2 x 2,2 GHz) with 2 GB RAM
14 Client PCs
:
1 x AMD at 1,2 GHz with 768 MB RAM
3 x Pentium III at 650 MHz with 384 MB RAM
10 x Pentium III at 667 MHz with 256 MB RAM
– connected to one 24-port 100 MBit switch
Compiled using standard Memory Manager (Delphi 7)
Test started on October 24th 2005, 12:00 CET

Test completed on October 26th 2005, 14:30 CET

Test running time: 2 Days, 2 Hours and 30 Minutes
CPU
Loop
Conn
Requests processed
in 7:30 h
in 24:50 h
in 33:10 h
in 50:30 h
650
1.000
100
1.110.250
3.639.300
4.894.470
7.440.240
650
1.000
100
1.150.100
3.699.850
4.953.710
7.473.520
650
1.000
100
1.099.810
3.685.060
4.897.190
7.426.380
667
1.000
100
1.100.000
3.698.390
4.907.330
7.404.290
667
1.000
100
1.082.200
3.600.430
4.789.800
7.300.010
667
1.000
100
1.038.600
3.598.380
4.805.580
7.216.400
667
1.000
100
1.096.470
3.684.820
4.898.170
7.421.890
667
1.000
100
1.136.490
3.795.730
5.010.910
7.577.500
667
1.000
100
1.100.970
3.697.900
4.899.390
7.410.660
667
1.000
100
1.098.990
3.707.510
4.865.380
7.394.400
667
1.000
100
1.099.840
3.602.770
4.853.710
7.454.660
667
1.000
100
1.099.150
3.529.250
4.722.720
7.300.000
667
1.000
100
1.158.710
3.799.940
5.012.440
7.600.000
1200
1.000
100
1.062.550
3.480.230
4.638.730
7.080.900
TOTAL 1.400
15.434.130
51.199.560
68.149.530
103.500.850
Avg speed
571,6/sec
572,7/sec
570,7/sec
569,3/sec
Delta
7:30 h
17:20 h
8:20 h
17:20 h
Processed
15.434.130
35.765.430
16.499.970
35.351.320
Speed
571,6/sec
573,2/sec
550/sec
566,5/sec

RealThinClient SDK v1.7 –Encryption and manual connect

Server: Dual-processor AMD X2 at 4,4 GHz (2 x 2,2 GHz) with 2 GB RAM
13 Client PCs:
3 x Pentium III at 650 MHz with 384 MB RAM

10 x Pentium III at 667 MHz with 256 MB RAM
– connected to one 24-port 100 MBit switch

Compiled using standard Memory Manager (Delphi 7)
Different configurations, run between 21. and 23. October 2005.
Test run time: 13:30 hours Test run time: 13 hours Test run time: 12 hours
CPU
Loop
Conn
Requests
Loop
Conn
Requests
Loop
Conn
Requests
650
100
300
1.349.660
100
600
1.020.270
1.000
600
1.170.960
650
100
200
979.840
100
600
960.790
1.000
600
1.297.240
650
100
100
582.250
100
600
966.050
1.000
600
1.223.300
667
100
300
1.159.870
100
600
950.290
1.000
600
1.018.620
667
100
200
939.630
100
600
894.020
1.000
600
1.285.570
667
100
100
529.980
100
600
900.000
1.000
600
1.201.370
667
1.000
300
5.260.810
100
300
1.199.800
1.000
600
1.179.790
667
1.000
300
4.969.620
100
300
1.200.540
1.000
300
2.299.740
667
1.000
200
4.260.900
100
300
1.217.910
1.000
300
2.092.840
667
1.000
200
3.791.800
1.000
100
2.503.600
1.000
300
2.348.990
667
1.000
100
1.763.150
1.000
200
3.994.120
1.000
300
2.054.080
667
1.000
100
2.298.270
1.000
300
4.491.920
1.000
300
2.106.900
667
100
600
490.900
1.000
600
2.733.990
1.000
300
2.389.900
TOTAL 3.000
28.376.780
= 5.700 23.033.300 = 6.000
21.669.300
Avg speed
583 req/sec
Avg
492 req/sec
Avg
501 req/sec

RealThinClient SDK v1.7 –Encryption and manual connect

Server: Pentium III at 667 MHz with 256 MB RAM
12 Client PCs
3 x Pentium III at 650 MHz with 384 MB RAM

9 x Pentium III at 667 MHz with 256 MB RAM
– connected to one 24-port 100 MBit switch

Compiled with Delphi 7 and standard Memory Manager
Test started on October 10th 2005 (Mon) – 16:00 CET

Test completed on October 20th 2005 (Thu) – 19:40 CET

Test running time: 10 days, 3 Hours and 40 Minutes
CPU

[MHz]

Requests

per Loop

Disconnect

after Loop

Connections

in use

Requests

processed

App memory

when done

Total CPU

used Time

650
100
Yes
300
17.340.000
14.764 KB
138:40
650
100
Yes
300
18.360.000
14.592 KB
133:09
650
100
Yes
300
18.150.000
14.212 KB
132:14
667
100
Yes
200
18.820.000
11.416 KB
85:49
667
100
Yes
200
19.800.000
11.504 KB
80:49
667
100
Yes
200
18.960.000
12.284 KB
80:59
667
100
Yes
100
12.140.000
8.160 KB
24:19
667
100
Yes
100
12.080.000
8.016 KB
23:59
667
100
Yes
100
11.970.000
8.316 KB
23:34
667
1.000
No
50
34.250.000
6.352 KB
16:12
667
1.000
No
100
66.100.000
8.722 KB
43:11
667
1.000
No
200
127.600.000
11.940 KB
111:30
Clients Total
2.150
376.550.000
Server [667 HMz]
429,2/sec
71.516 KB
157:34

RealThinClient SDK v1.7 –using 14 PCs

Server: Single-processor AMD at 1,2 GHz CPU with 768 MB RAM
Average processing speed: 822 req/sec Total connections in use: 2.400
13 Client PCs:
3 x Pentium III at 650 MHz with 384 MB RAM
10 x Pentium III at 667 MHz with 256 MB RAM
– connected to one 24-port 100 MBit switchTest started on Friday, October 7th 2005, 17:00 CET, Closed on Monday, October 10th 2005, 14:00 CET

Test running time: 2 days, 21 hours
Requests processed: 204,2 million

RealThinClient SDK v1.7 –Tests using 2 PCs

Here are the results of some tests done using one client PC and one server PC over a Wireless LAN with a low signal strength. All tests have passed, there were no problems.

> 2.000 connections flooding AppServer for 12 hours:
– 10,7 million requests processed = 248 req/s
– 31,8 GBits sent, avg upload speed = 736 kbit/s
– 16,5 GBits received, avg download speed = 381 kbit/s> 1.000 connections flooding RTC Server for 12 hours:
– 22 million requests processed = 509 req/s
– 63,6 GBits sent, avg upload speed = 1472 kbit/s
– 41,4 GBits received, avg download speed = 958 kbit/s

> 500 connections flooding RTC Server for 84 hours (3 days and 12 hours):
– Server CPU usage (1,25 GHz with 768 MB RAM) = 60-80%
– Client CPU usage (1 GHz with 1024 MB RAM) = 45-65%
180,2 million requests processed = 596 req/s
477,3 GBits sent, avg upload speed = 1578 kbit/s
295,1 GBits received, avg download speed = 976 kbit/s

Note: If you shold be asking yourself why there’s a difference between the amount of data being sent and received, the explanation is rather simple: request data size is larger than response data size, since requests from the client in this test send information needed to call a few remote functions (function names and all parameters), while response from the server only has to return a single value as a result from those functions.

RealThinClient SDK v1.6 –Tests done by our Beta-Testers and Partners

A number of tests were only possible with help from companies and developers interested in using RealThinClient components for their applications. We would like to THANK everyone who has participated in those tests and made global testing possible.These tests were done using the AppClient demo opening multiple connections and constantly flooding the AppServer with remote function calls. All tests were running constantly for several hours, having processed millions of requests during that period. This kind of testing was very time-consuming, because in each test client and server had to run under maximum load for several hours (most longer than 12 hours).

One hour of such flood-testing is equivalent to one full day of maximum application usage in a very productive environment.

Here are some interesting tests done by our partners and beta-testers. AppClient and AppServer were compiled using Delphi 7 with the standard Memory Manager. All tests used automatic Encryption and manual connect …>2.400 connections from 4 PCs flooding the AppServer for 14 hours:- “4 clients overLAN; 6,1 million requests processed; no problems!”
* Client 1 with 600 connections: P4 CPU 1.50GHz 512RAM Win XP proff = 1.283.480 requests completed
* Client 2 with 600 connections: PIII CPU 800 512 RAM Win 2k = 1.851.520 requests completed
* Client 3 with 600 connections: Celeron 1,00 GHz 512 RAM Win 2k = 1.227.880 requests completed
* Client 4 with 600 connections: P4 CPU 2,4 GHz 512 RAM Win XP proff = 1.792.770 requests completed
* SERVER processing 2.400 connections: P4 2,4 GHz 1 GB RAM Win 2k SERVER = 6.155.650 TOTAL requests processed
>>> “ESTRA” d.o.o. Croatia
> 3.000 connections from 3 PCs flooding the AppServer for 13:30 hours:
– “3 clients over 10MBit LAN; 4,9 million requests processed; no problems!”
>>>“TEKOM” d.o.o. Croatia

>4.101 connections from 7 PCs flooding one AppServer for 11:30 hours:
– “1 PC from location 1; 6 PCs from location 2; all through Internet; no problems.”
* PC 1 (Internet line 1) with 541 conn; 41.490 completed
* PC 2 (Internet line 2) with 600 conn; 25.590 completed
* PC 3 (Internet line 2) with 600 conn; 12.060 completed
* PC 4 (Internet line 2) with 600 conn; 14.960 completed
* PC 5 (Internet line 2) with 600 conn; 19.040 completed
* PC 6 (Internet line 2) with 560 conn; 12.056 completed
* PC 7 (Internet line 2) with 600 conn; 20.400 completed
= Total 145.596 requests completed
– Anthoni

>600 connections from 2 PCs flooding one AppServer for 5 hours:- “1 client over the Internet, 1 client on a Wireless LAN, everything ok.”
* Client 1 with 100 connections over the Internet (ADSL)= 964.120 requests; 158 MB sent; 56,7 MB received
* Client 2 with 500 connections over a Wireless-b LAN = 10.522.631 requests; 1,7 GB sent; 619 MB received
– Mario

> 19clients from 4 PCs flooding one AppServer for 4-5 hours: – “1 client over WLAN + 18 clients over a 100MBit LAN; no glitches!” – Malcolm

MORE …

A number of smaller tests over the Internet and different LAN’s have also been completed without any problems. You are also welcome to test RTC SDK in your environment. The easiest method of doing so is by using the ready-to-use AppClient and AppServer demos, which you can download here. Feel free to post your test-results to the RTC Newsgroups.