Kbase 16642: When to use the -Mxs startup parameter
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  5/10/1998 |
|
When to use the -Mxs startup parameter
INTRODUCTION
------------
This kbase explains the reason Progress supplies the -Mxs
parameter, and the rare cases you may need to use it.
WHY WE HAVE THE -Mxs PARAMETER
------------------------------
When the database manager starts up, it creates the shared
memory area during initialization. To create the shared
memory, it has to know how much space to allocate. The size
is computed by analyzing the values of various startup
parameters and the sizes and number of the various data
structures that will be put in shared memory.
The -Mxs parameter tells the database manager to allocate
more than what it has calculated will be needed. This
"feature" is provided in case the calculated value turns out
to be too small for some reason. There are three reasons why
it might be wrong:
1. For various reasons, the computation is not exact. For
example, we do not know what the largest shared memory seg-
ment size we can allocate is and therefore how many segments
will be required. There is some overhead in the beginning of
each segment to keep track of the space. The more segments,
the more overhead.
2. There are variable size structures (index key values in
index cursors) kept in shared memory. The size varies ac-
cording to what the application does, how indexes are de-
fined, and what the key values are. We estimate how much
memory will be needed for these. If the estimate turns out
to be wrong, you need a way to override it.
3. Bugs. Progress may have added a data structure and for-
gotten to include it in the computation or done the computa-
tion incorrectly.
It is pretty unusual for anyone to have to use -Mxs these
days, but it is kept in case it is needed. You may see the
need indicated by a system error, which reads:
Out of free shared memory. Use -Mxs to increase. (1185)
Progress Software Technical Support Note # 16642