|
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).
To see more detailed Screenshots (original size, PNG compressed) and detailed Test Results, CLICK HERE. |
|
|
 |
| 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: 600
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-processor AMD X2 at 4,4 GHz with 2 GB RAM
Average processing speed: 2760 req/sec
Total connections in use: 3000
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 |
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 - using FastMM4 with 13 to 3.900 connections |
|
 |
|
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
13 conn = 1 connection per Client PC
130 conn = 10 connections per Client PC
650 conn = 50 connections per Client PC
1.300 conn = 100 connections per Client PC
3.900 conn = 300 connections per Client PC |
All 13 Client PCs were running the RTC SDK AppClient Demo with the Multiple Connection Flood test,
using 1 - 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 13 - 3.900 connections),
Server was running the RTC SDK AppServer Demo in multithreaded mode (using 16 Threads)
with automatic encryption and compression. |
AppServer Performance:
FastMM4, 16 Threads, 13 - 3.900 Connections:
 |
AppServer Memory Usage:
FastMM4, 16 Threads, 13 - 3.900 Connections:
 |
Complete Test Results are available for download here:
AppServerFastMM16TResults.zip
FastMM4 and FastMove units which I used to stress-test
RTC SDK components, can be download here:
FastMM4+FastMove.zip
With 13 clients and average speed of 4.500 req/sec
(see above), every time a client has sent a request to
the server, response came back in less than 3 ms.
|
Here is what happens in less than 3 ms ...
1) Client has prepared a remote function call
2) Client has sent this call as a request to the Server
3) Server has received the request
4) Server has executed a remote function
5) Remote Function has prepared the Result
6) Server has sent the Result back to the Client
7) Client has received the Result
8) Client has called the Result event |
|
|
|
 |
| 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 switch
Test 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 over LAN; 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
> 19 clients from 4 PCs flooding one AppServer for 4-5 hours:
- "1 client over WLAN + 18 clients over a 100MBit LAN; no glitches!"
- Malcolm |
|
|
|
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. |
|
|
|