How to Interpret InuseMax column for Monitoring AWTs

The best minds from Teradata, our partners, and customers blog about whatever takes their fancy.
Teradata Employee

The ResUsageSAWT logs detailed information about AMP worker tasks (AWTs). Because AWTs are a finite resource, most sites keep on eye when they are close to running out.


ResUsageSAWT reports in-use and max AWT counts for all of the 16 message work types on each AMP and reports them at the end of each logging interval. It also includes a column InuseMax that reflects the maximum number of AWTs in combination that were in use at any one time during the log period.  This posting is intended to clear up any confusion over what InuseMax offers, when it’s useful, and when other AWT metrics are more suitable.


Just a couple of quick background points for this discussion:

  1. By default each AMP has 80 AWTs per AMP.
  2. Each work message that arrives on an AMP must acquire an AWT to get its work done.
  3. There are 8 standard reserve pools for 8 of the message work types, to ensure that those work types always have some number of AWTs available.
  4. Each standard reserve pool has reserve of 3 AWTs, leaving 56 AWTs in the unassigned pool (80 – (8 * 3) = 56), available to service any work type.

Under normal conditions with 80 AWTs per AMP and no special reserves, it is common practice to compare the values reported for the InuseMax column against logical upper limit of 62 for user-initiated work. This logical upper  limit of 62 is derived by taking the size of the unassigned AWT pool of 56 and adding 3 reserves for work00 and 3 reserves for work01, the two work types most commonly used by user-initiated work. You can then tell how close you are to running out of AWTs by comparing InuseMax against 62.


Here is the formula that shows how 62 is derived as a logical upper limit for AWTs supporting user work:


# AWTs/AMP - # AWTs in the standard reserve pools + (# AWTs in the Work00 + Work01 reserve pools)

80 – 24 = 56;   56 + 3 + 3 = 62


If you increased the number of AWTs per AMP you could use the same formula, but with different values plugged in to #AWTs/AMP parameter. For example, assume you had increased AWTs per AMP from 80 to 100:


# AWTs/AMP - # AWTs in the standard reserve pools + (# AWTs in the Work00 + Work01 reserve pools)

100 – 24 = 76;   76 + 3 + 3 = 82


So in this situation where you have increased AWTs you use InuseMax exactly as it is reported in the ResUsageSAWT table, but compare it against a logical high-water mark of 82 instead of 62.


What about if you both increase AWTs/AMP and add tactical (aka expedited) reserve pools? InuseMax is less useful for telling you if you are close to exhausting AWTs when you have expedited reserve pools.  That is because expedited reserve pools are usually sized for worst case peaks in tactical query concurrency.  It is often the case that most of reserved AWTs set aside for tactical work remain unused.  So subtracting or adding the number of AWTs held in the expedited reserve pools and plugging that into the formula is likely to end up being misleading when attempting to come up with a number similar to 62 that can be compared against InuseMax.


A better idea for assessing how close you are to AWT exhaustion is to use the “Available” and the “AvailableMin” columns in the ResUsageSAWT table, which were new starting in 14.10. These columns are defined as:

  • Available: The number of AWTs remaining in the unreserved pool (not being used) at the end of the logging interval.
  • AvailableMin: The lowest Available number for the entire logging interval.   If zero is reported, there were no AWTs available in the unassigned pool at some point.

Once you are on 14.10, you no longer need a fancy formula to determine a logical high-water mark to compare against InuseMax. The Available columns are much simpler to use and interpret: The closer they are to zero, the closer you are to running out of AWTs.  See the AMP Worker Task orange book for more detail on these columns and how they can be used.


Starting in 16.0 four addition “Available” columns are added to ResUsageSAWT:

  • AvailableForWork00: Unused AWTs that can be used for Work00 messages.
  • AvailableForWork00Min: The minimum value for AvailableForWork00 over the entire logging period.


AvailableForWork00 metric considers the limit (usually 50) on the number of AWTs that can support Work00 work messages at the same time, and then subtracts the number of active AWTs of the Work00 work type.


Similar to AvailableForWork00, there is another pair of Available metrics for expedited work:

  • AvailableForWork08: Unused AWTs that can be used for Work08 messages.
  • AvailableForWork08Min: The minimum value for AvailableForWork08 over the entire logging period.

There is a limit on how many expedited new work messages that will be allowed to start up at the same time. The default is 50, but this can be increased in Viewpoint Workload Designer under the Limits/Reserves tab using this prompt: “Max AWTs for new tactical work”.

If you are interested in how many AWTs are available in the unassigned pool for any type of work, then consider Available or AvailableMin. If you are interested in how many AWT are free to support non-expedited request, look at AvailableForWork00.  If you are concerned about how many AWTs there are that can support new expedited work, look at AvailableForWork08.


The available columns tell you how many AWTs are left, which is a more precise method of assessing how close you are to running out than is InuseMax. And the new columns in 16.0 let you focus on AWT availability just for expedited work or just for non-expedited work.