Multi-Client Load in OPC UA Server

The purpose of this test is to assess the GENESIS OPC UA Server's performance under multi-client load. It is assessed for stability, scalability, and its ability to recover system resources after stress.

This test focuses on evaluating the OPC UA Server’s performance under a growing number of simultaneous client connections, ranging from 1 to 100 clients. Each simulated client subscribes to 100 process points to generate realistic communication load. Every load level runs for 10 minutes to observe performance trends over time.

Scenario

  • Server: 4 CPU cores, 24576 MB RAM, Windows 11

  • Client: 4 CPU Cores, 16192 MB RAM, Windows 11

  • Genesis version: 11.02

  • OPC UA client tool used was OPCUA_client_simple

Methodology

Clients were connected sequentially in steps of 1, 5, 10, 25, 50, and 100.

Each load scenario was executed once in a continuous run to ensure consistent conditions.

After each test, the system’s idle state was measured to evaluate resource release and recovery.

Results

 

Bytes Received/sec

Bytes Sent/sec

% Processor Time

Handle Count

IO Read Bytes/sec

IO Write Bytes/sec

Process(IcoFwxServer)\Private Bytes

Process(IcoFwxServer)\Thread Count

Process(IcoFwxServer)\Virtual Bytes

Process(IcoFwxServer)\Working Set

Process(IcoFwxServer)\Working Set Peak

1 client

Average

7909.16

23214.96

9.07

2646

5449.65

5812.19

535427473

171

2481410000000

533611307

1049165824

Min

6214.64

21236.07

5.31

2569

5014.54

5370.39

509685760

166

2481400000000

406331392

1049165824

Max

812844.46

546311.56

14.48

2885

5861.95

6259.80

625283072

195

2481450000000

582283264

1049165824

5 clients

Average

17047.30

26782.76

9.10

2400

5386.09

5746.52

530197654

137

2481350000000

514679060

977412096

Min

6855.29

25319.53

6.05

2316

4968.87

5278.67

476442624

131

2481340000000

396099584

977412096

Max

827030.55

41232.95

11.68

2477

5686.05

6224.05

563744768

146

2481370000000

545726464

977412096

10 clients

Average

18685.32

23817.18

9.29

2816

5414.21

5776.09

599470139

192

2481450000000

541433185

1049165824

Min

6796.11

21212.88

5.21

2747

4919.09

5288.61

555257856

185

2481430000000

425873408

1049165824

Max

8266838.27

167799.37

13.74

3305

5830.70

6408.63

955305984

244

2481530000000

799711232

1049165824

25 clients

Average

8793.13

23848.83

10.73

3139

5438.83

5806.55

903034077

222

2481490000000

659928236

1049165824

Min

7552.85

21807.63

6.25

3041

5118.93

5412.31

840413184

215

2481480000000

450895872

1049165824

Max

39452.96

203563.47

19.50

3981

5813.25

8160.30

1458622464

330

2481660000000

978485248

1049165824

50 clients

Average

18646.05

28100.82

15.37

3607

5336.93

5711.62

1188058293

278

2480000000000

631777160

1048917333

Min

10393.32

25123.36

10.41

3457

4842.13

5149.60

835997696

270

2480000000000

398053376

1019076608

Max

828172.65

65256.96

27.26

3704

5725.82

8360.05

1404694528

289

2480000000000

1048838144

1049165824

100 clients

Average

20596.67

11534.24

21.01

4833

5413.27

5774.88

1717636044

405

2481780000000

675019533

980983808

Min

16260.76

9496.03

13.55

4693

4964.58

5298.34

1601839104

397

2481770000000

369238016

980983808

Max

7561717.39

1018450.47

29.13

4960

5834.91

6223.27

1833033728

422

2481810000000

927338496

980983808

processor time

handle count

private bytes

thread count

Summary

  • Data updates remained stable across all load levels from 1 to 100 clients.

  • CPU and memory usage increased proportionally with the number of connected clients.

  • System performance showed no noticeable degradation even at maximum load.

  • All sessions stayed active without timeouts, disconnects, or data loss.

  • Logs showed no unhandled exceptions during the test.

  • After client disconnection, resources were released properly — no leaks or zombie sessions were observed, and system usage returned close to the idle baseline.