Dynamic IMS Message Queue Performance Tuning

By default, the Enterprise Server TM system unilaterally flushes operating system buffers to your physical disk at key transactional points. These flushes are required to guarantee the transactional integrity of the message queue in the event of a failure that abnormally stops Enterprise Server TM. The overhead required for this default behavior can significantly degrade performance. However, you can improve performance by setting alternative options at startup, and by adjusting those options on the fly. Use the following environment variable:

Initializes performance settings for the IMS message queue, and enables dynamic performance tuning. Specifically, its twofold purpose is to:
  • Specify, at startup, either the default or an alternative method for flushing operating system buffers to disk.
  • Enable you to dynamically change the flushing method and apply it to the message queue without having to restart the enterprise server region.
Syntax
ES_TMC_AGGREGATE={[,N|,D]|nnn,Y}
Parameters
,N
Sets the default behavior, which is to unilaterally flush operating system buffers to your physical disk at each key transactional point. While this does not change the method used by default at startup, it does enable dynamic modification via ESCWA. Once set, you can then test the effect of various non-default settings by altering them dynamically.
,D
Disables the transactional flushing of operating system buffers to disk. This option can significantly enhance message queue performance; however, it is at the expense of the transactional integrity of the message queue in the event of a system failure.
Notes: To avoid unpredictable results when using this setting, Micro Focus recommends that you also set the static options as follows on ESCWA. Select enterprise server region you require, click IMS > Configuration and then click the TM tab:
  • Set the Cold start list to Everything.
  • Check Persist.

See Server Instance Properties: MSS IMS TM General for more information.

nnn,Y
Enables the aggregated transactional flushing of operating system buffers to disk where nnn represents an interval of time, in milliseconds, during which additional buffers are allowed to accumulate before flushing. Valid values are 0 through 255.

Once a thread reaches a key transactional point and requests a flush, TM waits the specified interval to accumulate subsequent threads that also request a flush. At the end of the interval, one flush is performed for all accumulated requests, thus potentially improving performance by reducing the number of flush commands issued to the operating system.

Note: Threads requesting a flush wait until the flush is confirmed.

Typically, when the message queue resides on a higher performance I/O subsystem such as one using SSDs, a smaller value, for example 1 or 2, produces the best results. A value of 10 or higher seldom improves performance.

Default
ES_TMC_AGGREGATE=,N

Dynamic changes using ESMAC

You can adjust and apply IMS message queue performance settings dynamically from the System Overview and Control section on the ESCWA IMS Control page. In ESCWA, select the enterprise server region you require. Click IMS > Control and then click the TM tab. Use this feature to test various performance settings, and to adjust performance on the fly when required.

Important: Performance results produced by the ES_TMC_AGGREGATE environment variable settings and the associated dynamic ESMAC settings are strictly dependent on the hardware and operating system on which Enterprise Server is running. Test rigorously before committing these settings to a production system.