Having problems with your account or logging in?
A lot of changes are happening in the community right now. Some may affect you. READ MORE HERE

How to configure Shared Memory Pages and Shared Memory Cushion for a Server (region)

How to configure Shared Memory Pages and Shared Memory Cushion for a Server (region)


Each Server (region) running under Enterprise Server shows, on its Server > Properties > General tab, settings named Shared Memory Pages and Shared Memory Cushion.  These have default values such as 512 and 32, for example.  But the values might need to be adjusted to be certain the Server has enough shared memory.  When a Server is running under load and the shared memory settings are exceeded, the following error might appear in the console.log:  'CASKC0007W Shared memory storage constrained'.  How should a person decide what values to specify?


The product documentation contains charts to help estimate the amount of shared memory a Server might require, for example as shown on this page:


But in practice Micro Focus end-users usually establish values for the Shared Memory Pages and Shared Memory Cushion heuristically, that is by trial and adjustment, instead of by making precise calculations.

While a particular Server (region) is running, go into Server > Properties > Control > ES Monitor & Control (a. k. a.  ESMAC).  On the ESMAC screen, press the "Server" button at top-left, and view at the Server Information screen.  You can see:

Shared Memory (number of 4k pages) -- this is the amount originally configured on the Server > Properties > General tab

SM Total (in k) – just 4 times the 4k number above

SM Cushion (in k) -- the active value of the cushion in k.  Notice that when configuring, you specify this number in units of 4k pages, but here it is shown in k.

SM Free (in k) -- this is the number to pay attention to -- the amount not currently in use

The number in parenthesis following the SM Free, is the FAQE chain length.  This is freed shared memory and is related to how the system manages the shared memory area.  When a block of shared memory is freed it is chained into the FAQE chain. Memory requests will get satisfied from this chain of blocks.

The heuristic approach to setting shared memory for a Server is to set some initial values, run the region for a while, and check the "SM Free" and the "SM Cushion" in ESMAC to see how much is actually being used.  Add some additional load to the region, and watch the SM Free and the SM Cushion.  Adjust the values on the ES Admin > Server > Properties > General page, re-start the region, and test again.  Continue adjusting the values until the SM Free shows a comfortable value even when the region is under heavy load.

You can allocate generous amounts.  Start by allocating 5120 4k pages.  That's 5120*4*1024 bytes = 20 meg.  By today's standards, 20 meg is a reasonable amount of memory for a process.  For example if the machine has 16 gig of RAM, 20 meg is 0.12% of RAM, that is, twelve hundredths of one percent.  And this memory is not allocated individually for each ES process such as mfcs, casmgr, SEPs, etc, instead this memory is allocated once and shared between ES processes.  You can use relatively high values without a performance impact.  Try 5120 with 10% cushion 512, then monitor the SM Free and the SM Cushion in ESMAC and decide whether the amount can be adjusted up or down.


Some content on Community Tips & Information pages is not officially supported by Micro Focus. Please refer to our Terms of Use for more detail.
Top Contributors
Version history
Revision #:
1 of 1
Last update:
‎2017-05-01 05:05
Updated by:
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.