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.
ES_TMC_AGGREGATE environment variable
To initialize performance settings for the IMS message queue, and to enable dynamic performance tuning, we provide the ES_TMC_AGGREGATE
environment variable. 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.
Set ES_TMC_AGGREGATE for a specific
enterprise server region by adding it to the
[ES Environment] section in the
Configuration Information field located on the Administration
Server > Properties > General tab. Use the following syntax:
[ES-Environment]
ES_TMC_AGGREGATE={[,N|,D]|nnn,Y}
- ,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 ESMAC. 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.
Note: To avoid unpredictable results when using this setting, we highly recommend that you also set the static options as follows
on the Administration
Server > Properties > MSS > IMS > TM > General tab:
- Set
Cold start to
Everything (queue)
- Check
Persist
See
Server Instance Properties: MSS IMS TM General
for details.
- 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.
- Generally, when the message queue resides on a higher performance I/O subsystem such as one using SSDs, a smaller value,
e.g.
1 or
2, produces the best results. A value of
10 or higher seldom improves performance.
Dynamic changes using ESMAC
You can adjust and apply IMS message queue performance settings dynamically from the
TM System Overview and Control
section on the ESMAC
IMS Control page. 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.