Subject: SAI is no calculated completely different. Make sure you run D6.0.2CF2 or higher! Some technical details …
We ran into a lot of trouble with SAI in Domino 6. It was not just lower in Domino 6 than it was before (on multiple platforms) but it also was not stable (jumping almost randomly between 0 and 100%).
The problems have been fixed in 6.0.2CF2. We did a lot of testing in this area and I traced SAI and the new XF (expansion factor) in live environment of a customer running Domino on Regatta (larger AIX boxes).
There are a couple of tuning parameters. The most important parameter is SERVER_TRANSINFO_RANGE.
See details about this below (description in the SPR an from most updated admin doc).
We have done a lot of research in this area and I have written a presentation describing all the details how this is calculated. I you are interested I can send you an extract of the presentation. Just drop me a note at ldd@nashcom.de. I am happy to share this.
I am appending the two main documents that should give you already a lot of details.
On of the most important things is that the percentage of the SAI is not directly reflecting the performance of your machine. It’s a arbitrary value and if this is lower in your environment this does not mean your box is slower than before. The calculation is now more exact and does reflect the actual transactions of your machine better. But you might need to tweak the settings described below to get a nice SAI to use for workload balancing and failover.
Daniel
Availability Index values in Notes/Domino 6 vs. R5 (SPR #IDEA5K5PNC)
In the server document, customers can leverage the Availability Index (AI), so that servers in a cluster can failover when load exceeds a certain level. For example, the value could be set to failover when the AI drops below 90 percent. On the same server, the same level of load will yield different AI values for R5 and N/D 6. In one test scenario, on a four CPU XEON Hyperthreaded machine, the same load test showed 95 percent availability under R5.x and 40 percent vailability for Notes/Domino 6.x. This value does not reflect a comparison of performance between 5.x and 6.x, but instead reflects code changes in Domino 6 that affect how the AI is reported.
The algorithm to compute the AI, which is used to drive automatic failover under heavy loads, was designed a number of years ago. At that time, analysis and testing performed was done on machines which were much smaller and slower that those available today. The AI is computed by examining the difference between the elapsed time to perform transactions on an idle system, and the elapsed time to perform them on a loaded system. As machines have become faster, the elapsed time to perform transactions on an idle system has become much smaller, making the difference much larger. The original AI code in Domino 6.0 did not take this into account.
This change in the AI calculation both fixes some bugs, and allows the administrator to adjust the calculation to match the CPU speed and number of CPUs on each server. The Notes.ini variable SERVER_TRANSINFO_RANGE is used to adjust the AI calculation to match the speed of the server. To select the proper value:
-
Monitor your system during a period of heavy usage and note the values of Expansion Factor. You can use the console command “show stat server.expansionfactor”
-
Select a value for SERVER_TRANSINFO_RANGE such that 2 raised to the power SERVER_TRANSINFO_RANGE is a reasonable upper bound for expansion factor values. For example, if SERVER_TRANSINFO_RANGE=6 (the default) then we expect that the expansion factor values will not rise above 64.
-
Monitor your system during periods of heavy usage to note what value of AI you want to set for your threshold. Select a value which matches the drop in response time at which you want failover to occur.
Note that unless you do load balancing with Availability Index or you use the ICM, there is no need to take the steps above
Also note that AI values are just a tool to make load balancing work; they are an estimate of system load. The values reported by Domino Release 5 and Domino 6, with this fix, are all different. Do not use the AI values as a comparison of performance between Domino releases
The server availability index
Each server in a cluster periodically determines its own workload based on the response time of the requests the server has processed recently. The workload is expressed as a number from 0 to 100, where 0 indicates a heavily loaded server and 100 indicates a lightly loaded server. This number is called the server availability index. As response times increase, the server availability index decreases.
The server availability index is approximately equal to the percentage of the total server capacity that is still available. For example, if the server availability index is 65, you still have approximately 65% of the capacity of your server available. Although the servers in your enterprise may vary in power and resources, the server availability index represents the same thing on each server – the amount of total availability of that server that is still available.
The server availability index is based on the expansion factor, which is determined by comparing recent response times for specific types of transactions to the minimum time in which the server has ever completed the same types of transactions. For example, if the server is currently averaging 12 microseconds to perform Database Open transactions but the minimum time the server has ever performed a Database Open transaction is 3 microseconds, the expansion factor for Database Open transactions would be 4 (the current time of 12 microseconds divided by the fastest time of 3 microseconds). In other words, the expansion factor determines how many times longer it takes for a transaction to complete currently than it takes under optimal conditions.
Domino stores the minimum time for each type of transaction in memory and in the LOADMON.NCF file, which the server reads each time it starts. When the server shuts down, Domino updates the LOADMON.NCF file with the latest information.
To determine the current expansion factor, Domino tracks the most commonly used types of Domino transactions for specified periods of time. By default Domino tracks these transactions for 5 periods of 15 seconds each. Domino then determines the average time it took to complete each type of transaction and divides that time by the minimum time it ever took to complete that same type of transaction. This determines an expansion factor for each type of transaction. To determine the expansion factor for the entire server, Domino averages the expansion factors for all the types of transactions, giving a heavier weighting to the most frequently used types of transactions.
As the server gets busier, adding more load has an increasingly greater effect on performance and availability. Thus, adding more load to a busy server increases the expansion factor faster than adding more load to a less busy server.
An expansion factor of 64 is considered the maximum load for a server. In other words, if the server is taking 64 times longer to complete transactions than it does under optimal conditions, Domino considers the server to be fully loaded.
How the availability index compares to the expansion factor
To determine the availability index, Domino uses a formula that converts the expansion factor into an approximation of the percentage of the total server capacity that is still available. The following table shows a few examples of expansion factors converted to availability indexes.
Expansion factor
Availability index
1
100
2
83
4
67
8
50
16
33
32
17
64
0
Note The expansion factor and the availability index measure only the response time of the server, which is usually only a small portion of the response time clients experience. For example, the network response time between a client and a server often accounts for a significant portion of the response time the client experiences.
Changing the amount of data used to compute the expansion factor
Although it is not usually necessary, you can use the following NOTES.INI settings to change the amount of data that Domino collects in order to figure the expansion factor.
– change the number of data collection periods that Domino uses, use the NOTES.INI setting Server_Transinfo_Max=x where x is the number of collection periods you want Domino to use. -
– change the length of each data collection period, use the NOTES.INI setting Server_Transinfo_Update_Interval=x where x is the length of each period in seconds.