Optimizing session manager performance

Flow control

Flow control prevents session manager from exhausting critical system resources, which may occur under extreme workload.

Flow control does the following:

  • Monitors the status of system resources for session manager:

    • Available memory

    • Available virtual address space

  • Raises events when a certain threshold has been reached:

    • NORMAL - Operate in default mode for any new input

    • PROACTIVE - Gives early warning to system components that can make memory available when required

    • SEVERE - Starts to scavenge as much memory as possible, current clients work fine

    • CRITICAL -Starts to slow data inflow to the session manager and raise the priority of getting data out of the session manager. Rejects new connections, suspends new sessions from currently attached clients, and pends new tasks in those suspended sessions—current sessions and tasks work fine.

    • HALT - Session manager enters into lockdown mode, no further processing is allowed until an administrative action is performed, or the system enters a safer state.

  1. Edit your application profile. In the SOAM SSM section, configure values for memory and virtual address space for each threshold.

    In the example below, when available memory on the session manager host is down to 30% of total memory, the event BEV_PROACTIVE is triggered.

    When available memory is down to 20%, the event BEV_SEVERE is triggered.

    For available virtual address space, when there is only 50% available virtual address space for the session manager process, BEV_PROACTIVE event is triggered, and so on.

     <boundaryManagerConfig>
                    <boundaries>
                        <boundary elementName="AvailableMemory">
                            <event name="BEV_PROACTIVE" value="30"/>
                            <event name="BEV_SEVERE" value="20"/>
                            <event name="BEV_CRITICAL" value="0"/>
                            <event name="BEV_HALT" value="0"/>
                        </boundary>
                        <boundary elementName="AvailableVirtualAddressSpace">
                            <event name="BEV_PROACTIVE" value="50"/>
                            <event name="BEV_SEVERE" value="40"/>
                            <event name="BEV_CRITICAL" value="25"/>
                            <event name="BEV_HALT" value="15"/>
                        </boundary>
                    </boundaries>            
    </boundaryManagerConfig>            
  2. Save your application profile.
  3. Update your application with the new profile with the soamreg command. (If you prefer, you may do these steps using the Platform Management Console to export and import the application profile.)

Memory allocation parameters

If the SSM on Linux remains at a critical memory level when there is enough available memory and not much unfinished workload, the SSM may not be detecting correct memory usage. This can cause the boundary event not to be triggered properly. If this situation occurs, try setting the following environment variables for the SSM in your application profile:

  • <env name="MMAP_THRESHOLD">131072</env>

  • <env name="MMAP_MAX">65536</env>

Note:

The MMAP_THRESHOLD value should be smaller than the average task input/output size.