Attachmate Worldwide  |   Contact Us  |   NetIQ.com
Home » Support » Solution Library

Technical Notes

Verastream Host Integrator Server Performance
Technical Note 10087
Last Reviewed 11-Apr-2008
Applies To
Verastream Host Integrator version 6.5
Summary

This technical note uses several performance characteristics of Verastream Host Integrator (VHI) Session Server to provide a basic understanding of VHI sizing techniques in Windows and Linux/UNIX environments.

This document covers the following topics:

Note: Results in your environment may vary. Attachmate recommends you conduct performance testing with your particular combination of model(s), host(s), host application(s), network, server hardware, and server configuration.

Concurrent Sessions

In order to determine the appropriate number of concurrent sessions, it is necessary to consider how the host application will be used, and the expected peak number of concurrent client users. Models designed for transactional use (table procedures) typically execute quickly. However, concurrent session demands are higher when using rejuvenation, suspended sessions, or procedures that will take a long time to execute due to high-latency hosts or networks, or navigation across a large number of entities.

The recommended maximum limit is 250 concurrent host sessions per single-CPU session server. Higher concurrent session requirements can be met with multiple session servers.

Note: Your concurrent session limit is governed by your product licensing. Do not configure more concurrent sessions than authorized by your license.

Memory

Memory usage by the Host Integrator server is directly related to model size and the number of concurrent sessions.

The minimum required physical memory is 512 MB (1 GB recommended) for an average model of 50 entities and less than 100 concurrent sessions. An additional 64 MB is suggested (128 MB recommended) for each additional 100 concurrent sessions. With 100 concurrent sessions, each entity uses roughly 0.44 MB.

VHI is highly efficient in memory usage, so large amounts of memory do not increase server performance. VHI does not use more than 4 GB of memory.

With more entities in a model, more memory is consumed per session. Although there can be wide variations in the complexities of entities (operations, patterns, recordsets, and event handlers), these attributes do not have a large impact on the memory consumption per entity. A model with 100 entities uses roughly twice the memory compared to a model with 10 entities.

Example: With 200 concurrent sessions, a 13-entity model uses 85 MB of memory, and a 100-entity model uses 161 MB.

Processors and Performance

Multi-processor systems can improve Host Integrator performance. VHI uses multiple CPUs (symmetric multi-processing, or SMP) when available.

The largest marginal increase in efficiency is realized on a dual processor system. Further performance gains can be obtained with additional CPUs, but a diminished improvement is realized per additional processor.

Number of Processors
Approximate Gain in Performance
2 CPUs vs. 1 CPU
75% gain
4 CPUs vs. 2 CPUs
38% gain
8 CPUs vs. 4 CPUs
14% gain

Note: More than 4 physical cores (two Dual Core) is not recommended.

The following table illustrates the transaction rate of a 37-entity procedure that both reads and writes to the host. With additional processors, the procedure completes more quickly, thus increasing the transactions per second.

Number of Concurrent Sessions
1
5
10
20
35
55
80
100
Transactions per second with 1 CPU (process on one core)
0.53
0.76
0.80
0.85
0.84
0.85
0.83
0.80
Transactions per second with 2 CPUs (process across Dual Core)
0.58
1.18
1.33
1.44
1.47
1.50
1.50
1.48
Transactions per second with 4 CPUs (2 Dual Core)
0.58
1.78
1.88
1.88
2.06
2.06
2.34
2.24
Transactions per second with 8 CPUs (2 Dual Core w/Hyper-Threading)
0.71
2.00
2.13
2.29
2.26
2.33
2.34
2.24

The measurement can be normalized as entities per second by calculating Transactions / Second x Entities.

Performance gains for additional CPUs is realized when the concurrent session count is approximately five or greater.

Given the falling cost of hardware and the rise of multi-processor systems, four or more processors can still be beneficial, especially when a specific transaction per second requirement is sought.

Other Performance Variables

Note the following:

  • Intel processors that incorporate Hyper-Threading Technology (HTT) can be used with operating systems that provide support for it. Enabling HTT generally provides about 15% performance boost (18% on Windows, 13% on Linux).
  • Use of large or small models has little measurable effect on performance.
  • Use of security adds 35% to 55% overhead rising with CPU count.
  • Logging all messages and recording everything in model debug messages adds significant overhead, especially when logs are written to a journaling filesystem on Linux/UNIX platforms. (In a normal production environment, it is recommended to log and record errors only. For more information on configuring logging and model debug messages, see Technical Notes 40032 and 10066 respectively.)
  • Model event handlers can impact performance, depending on the size, complexity, and number of event handlers. For example, with the addition of 223 event handlers on a 13-entity model, transactions per second were reduced more than half. The event handler script engine performs about 20% better on Linux compared to Windows.

------------------------------------------------------------------------------------------------------------------------------

Test Details

If you are interested in the testing details, the following information describes the testing environment, methodologies, and results data.

Tests were performed with the following models:

  • Model R: 13 entities, no event handlers
  • Model L (large): 100 entities, no event handlers
  • Model S (scripted): 13 entities, 223 event handlers

Each model has 2 procedures (navigating a total of 37 screens) retrieving data from the host and updating data to the host (healthcare host application). Tests were conducted with VHI version 6.5.

Test 1: Session Server Memory Usage

Test Systems

This test used the following system configuration:

Dual-Core Intel Xeon 5050 Processors @ 3.0 GHz x 2, with HTT enabled in BIOS
4 GB RAM
Windows XP Pro x64

Test Procedures

  1. Deploy VHI model to Session Server on localhost.
  2. Create VHI session pool configured for X number of concurrent sessions.
  3. Record memory usage of sesssrvr.exe in Windows Task Manager (Processes tab).

Test Results Data

No. of Concurrent Sessions
Model R Memory Usage
Model L Memory Usage
Model S Memory Usage
200
84,960 KB
160,492 KB
84,524 KB
500
190,224 KB
381,940 KB
190,260 KB
1000
365,516 KB
750,972 KB
366,340 KB
2000
716,340 KB
1,489,040 KB
718,556 KB
3000
1,067,164 KB
-
1,070,680 KB
Approx. RAM per 100 sessions
35 MB
73 MB
35 MB

Total memory usage varies during execution (of procedures, event handlers, etc.) but these increases are minimal compared to the initial memory load.

Test 2: Effect of Number of CPUs on Performance

Test Systems

This test used the following system configuration:

Dual-Core Intel Xeon 5050 Processors @ 3.0 GHz x 2, with HTT enabled in BIOS
4 GB RAM
Windows XP Pro x64

Test client and trace player are installed on separate machines to ensure minimal interference on performance data.

Test Procedures

For each set of tests:

  1. Assign the following processes to X number of CPUs:
sesssrvr.exe
vhiAads.exe
vhiHostemul.exe
vhiLogmgr.exe
vhiScriptEngine.exe
VhiWebserver.exe
VhiWebstation.exe
  1. Set processor affinity:
For 1 CPU, set processor affinity to CPU 7 only
For 2 CPUs, set processor affinity to CPUs 5 and 7 only
For 4 CPUs, set processor affinity to CPUs 1, 3, 5 and 7 only
For 8 CPUs, leave as default, all 8 CPUs are checked
  1. Deploy VHI model to Session Server.
  2. Create VHI session pool configured for Y number of concurrent sessions. Note: Your concurrent session limit is governed by your product licensing.
  3. For each set of tests, execute a total of Y transactions (where each transaction represents navigation of 37 screen entities in the test model).

Test Results Data: Time to Complete Y Transactions

The following table shows the amount of time (in ms) for the Y concurrent sessions to complete a total of Y transactions. Test results show the time for 1 session running 1 transaction, 5 sessions for 5 transactions, ...100 sessions running 100 transactions. For example, in test R1, with 2 CPUs it takes 422 ms for 5 concurrent sessions to complete 5 transactions.

For comparison purposes, to estimate the time per 100 transactions, divide the results value by the number of transactions and multiply by 100. For example, in test R1, with 2 CPUs it takes approximately 8.4 seconds (.422/5*100) for 5 concurrent sessions to complete 100 transactions.

Test R1: Server with security, logging, and debugging disabled
# of Concurrent Sessions and Transactions
1
5
10
20
35
55
80
100
8 CPUs
141
250
469
875
1547
2360
3422
4469
4 CPUs
172
281
532
1063
1703
2672
4000
5106
2 CPUs
172
422
750
1391
2375
3672
5344
6765
1 CPU
187
656
1250
2344
4157
6453
9687
12437
Test R5: Server with security enabled
# of Concurrent Sessions and Transactions
1
5
10
20
35
55
80
100
8 CPUs
1016
953
1125
1828
2703
3797
5203
6922
4 CPUs
828
953
1281
2000
3078
4501
5969
7531
2 CPUs
843
1172
1515
2360
3796
5875
7766
10000
1 CPU
1078
1531
2469
4218
6531
10140
13891
18000
Test R7: Server logging all messages and recording everything in model debug messages
# of Concurrent Sessions and Transactions
1
5
10
20
35
55
80
100
8 CPUs
234
438
735
1547
2657
4047
5907
7219
4 CPUs
219
391
797
1671
2625
4360
5953
7844 (2)
2 CPUs
219
516
1125
2031
3703
5641
8422
9094 (14)
1 CPU
250
1625
2172
4188
6704
10469
15265
17016 (13)
Test L1: Large 100-entity model
# of Concurrent Sessions and Transactions
1
5
10
20
35
55
80
100
8 CPUs
156
266
438
1000
1688
2641
3969
4766
4 CPUs
187
297
563
1172
1922
2922
4250
5282
2 CPUs
203
390
734
1563
2609
4000
5906
7016 (3)
1 CPU
187
703
1328
2719
4453
6766
10641
12781
Test S1: Model with 223 event handlers
# of Concurrent Sessions and Transactions
1
5
10
20
35
55
80
100
8 CPUs
422
765
1297
2062
3125
4672
6813
9469
4 CPUs
640
1234
1391
2531
4031
6203
8687
11422
2 CPUs
515
1266
1985
3922
6296
9578
14140
17079
1 CPU
594
1969
4125
6250
10625
16157
24235
29500 (2)
Note: Number of failed transactions is indicated in red next to time recorded.

Test 3: Effect of Hyper-Threading on Performance

Test Systems

Four machines are used in this setup:

Machine A: VHI Server on Windows XP Professional, Xeon 2.4 GHz (1 CPU), 1 GB RAM

Machine B: VHI Server on RedHat Enterprise Linux ES 4, Xeon 2.4 GHz (1 CPU), 1 GB RAM

Machine C: Trace Player (functioning as host without latency factors)

Machine D: Test Client

Test client and trace player are installed on separate machines to ensure minimal interference on performance data.

Test Procedures

For each set of tests, execute a total of 100 transactions (where each transaction represents navigation of 37 screen entities in the test model). Transactions were split equally between the number of concurrent sessions.

Test Results Data: Time to Complete 100 Transactions

The following tables show the amount of time (in seconds) to complete 100 transactions. Smaller numbers are better.

Test R1: Server with security, logging, and debugging disabled

10087_1.gif
    # of Concurrent Sessions
    1
    2
    5
    10
    20
    50
    100
    Windows (w/HTT)
    163.43
    144.38
    124.84
    115.78
    117.81
    114.22
    117.96
    Windows (w/o HTT)
    160.31
    137.81
    150.00
    139.38
    136.56
    133.44
    142.03
    Linux (w/HTT)
    224.37
    145.47
    120.78
    108.90
    106.25
    111.41
    104.53
    Linux (w/o HTT)
    212.34
    150.78
    134.06
    124.69
    124.06
    121.09
    118.75

Test R5: Server with security enabled

10087_2.gif
    # of Concurrent Sessions
    1
    2
    5
    10
    20
    50
    100
    Windows (w/HTT)
    373.34
    201.10
    151.41
    144.22
    148.44
    149.38
    164.06
    Windows (w/o HTT)
    373.91
    240.63
    186.72
    184.37
    178.13
    183.90
    212.65
    Linux (w/HTT)
    308.74
    193.13
    154.68
    138.44
    133.12
    143.12
    148.28
    Linux (w/o HTT)
    307.65
    249.84
    216.72
    182.96
    172.18
    178.74
    171.87

Test R7: Server logging all messages and recording everything in model debug messages

10087_3.gif
    # of Concurrent Sessions
    1
    2
    5
    10
    20
    50
    100
    Windows (w/HTT)
    351.87
    268.27
    239.38
    238.28
    242.97
    248.44
    255.31
    Windows (w/o HTT)
    366.56
    326.25
    323.74
    318.90
    316.71
    325.78
    349.21 (12)
    Linux (w/HTT)**
    506.24
    528.59
    531.40
    545.00
    551.87
    561.87
    566.55
    Linux (w/o HTT)**
    529.21
    557.65
    581.08
    601.08
    595.62
    621.70
    607.95

Note: Number of failed transactions is indicated in red next to time recorded.

**With heavy logging on Linux, time values reflect use of journaling filesystem. Improved performance can be realized with a standard filesystem.


Test L1: Large 100-entity model

10087_4.gif
    # of Concurrent Sessions
    1
    2
    5
    10
    20
    50
    100
    Windows (w/HTT)
    170.16
    136.10
    126.71
    127.65
    123.59
    125.47
    138.43
    Windows (w/o HTT)
    174.99
    149.69
    150.94
    150.94
    149.84
    149.85
    163.43
    Linux (w/HTT)
    233.75
    143.75
    131.41
    123.90
    115.94
    115.16
    127.03
    Linux (w/o HTT)
    203.74
    155.00
    145.00
    134.68
    136.41
    137.50
    155.94

Test S1: Model with 223 event handlers

10087_5.gif
    # of Concurrent Sessions
    1
    2
    5
    10
    20
    50
    100
    Windows (w/HTT)
    482.34
    345.78
    339.21
    335.47
    340.00
    372.03
    441.40
    Windows (w/o HTT)
    512.96
    435.15
    425.62
    400.94
    385.77
    416.40
    491.25
    Linux (w/HTT)
    559.52
    356.40
    299.69
    275.93
    262.69 (1)
    258.75 (1)
    286.39 (4)
    Linux (w/o HTT)
    493.27
    391.24
    360.46
    309.37
    265.31
    274.22
    313.21 (1)

Note: Number of failed transactions is indicated in red next to time recorded.


Test Results Data: Transactions Per Second

The following tables show the number of transactions per second (transaction rate). This is an inverse of the data above, calculated from 100 (number of transactions) divided by the seconds (to complete the 100 transactions). Larger numbers are better.

Test R1: Server with security, logging, and debugging disabled

10087_6.gif
    # of Concurrent Sessions
    1
    2
    5
    10
    20
    50
    100
    Windows (w/HT)
    0.61
    0.69
    0.80
    0.86
    0.85
    0.88
    0.85
    Windows (w/o HT)
    0.62
    0.73
    0.67
    0.72
    0.73
    0.75
    0.70
    Linux (w/HT)
    0.45
    0.69
    0.83
    0.92
    0.94
    0.90
    0.96
    Linux (w/o HT)
    0.47
    0.66
    0.75
    0.80
    0.81
    0.83
    0.84

Test R5: Server with security enabled

10087_7.gif
    # of Concurrent Sessions
    1
    2
    5
    10
    20
    50
    100
    Windows (w/HT)
    0.27
    0.50
    0.66
    0.69
    0.67
    0.67
    0.61
    Windows (w/o HT)
    0.27
    0.42
    0.54
    0.54
    0.56
    0.54
    0.47
    Linux (w/HT)
    0.32
    0.52
    0.65
    0.72
    0.75
    0.70
    0.67
    Linux (w/o HT)
    0.33
    0.40
    0.45
    0.55
    0.58
    0.56
    0.58

Test R7: Server logging all messages and recording everything in model debug messages

10087_8.gif
    # of Concurrent Sessions
    1
    2
    5
    10
    20
    50
    100
    Windows (w/HT)
    0.28
    0.37
    0.42
    0.42
    0.41
    0.40
    0.39
    Windows (w/o HT)
    0.27
    0.31
    0.31
    0.31
    0.32
    0.31
    0.29
    Linux (w/HT)
    0.20
    0.19
    0.19
    0.18
    0.18
    0.18
    0.18
    Linux (w/o HT)
    0.19
    0.18
    0.17
    0.17
    0.17
    0.16
    0.16

Test L1: Large 100-entity model

10087_9.gif
    # of Concurrent Sessions
    1
    2
    5
    10
    20
    50
    100
    Windows (w/HT)
    0.59
    0.73
    0.79
    0.78
    0.81
    0.80
    0.72
    Windows (w/o HT)
    0.57
    0.67
    0.66
    0.66
    0.67
    0.67
    0.61
    Linux (w/HT)
    0.43
    0.70
    0.76
    0.81
    0.86
    0.87
    0.79
    Linux (w/o HT)
    0.49
    0.65
    0.69
    0.74
    0.73
    0.73
    0.64

Test S1: Model with 223 event handlers

10087_10.gif
    # of Concurrent Sessions
    1
    2
    5
    10
    20
    50
    100
    Windows (w/HT)
    0.21
    0.29
    0.29
    0.30
    0.29
    0.27
    0.23
    Windows (w/o HT)
    0.19
    0.23
    0.23
    0.25
    0.26
    0.24
    0.20
    Linux (w/HT)
    0.18
    0.28
    0.33
    0.36
    0.38
    0.39
    0.35
    Linux (w/o HT)
    0.20
    0.26
    0.28
    0.32
    0.38
    0.36
    0.32
Related Technical Notes
10030 Supported Platforms and Systems Requirements for Verastream Host Integrator
10066 Configuring Recording of Model Debug Messages on the Verastream Server
40032 Verastream Host Integrator Server Logging
40999 Verastream Host Integrator Technical Notes

Did this technical note answer your question?

Yes    No    Somewhat     Not sure yet

Additional comments about this tech note:

Need further help? For technical support, please contact Support.