Memory performance parameters for the configuration file
This section describes how to configure the IXIASOFT TEXTML Server parameters that directly impact memory performance.
There are two methods for determining the maximum amount of memory that
TEXTML Server can use at any time: using
the CacheMaximumMemory
parameter or using the LeaveFree
parameter.
Using CacheMaximumMemory
The CacheMaximumMemory
parameter
specifies the maximum amount of memory, in megabytes, that TEXTML Server may use. Note that TEXTML Server will try to reserve this memory, whether it is
available or not.
For example, if CacheMaximumMemory
is
set to 20 GB, but only 12 GB are physically available, TEXTML Server will be very slow, since the operating system will
swap physical memory for memory on disk ("swap space"). Note that, if the
Windows-specific parameter ForceMainMemory
is set to
True
, TEXTML Server will crash, because the ForceMainMemory
prevents Windows from swapping memory (applies to Windows
only).
Using LeaveFree
(i.e., setting CacheMaximumMemory
is set to
0)
When CacheMaximumMemory
is set to 0,
TEXTML Server ensures that the amount of
memory specified by the LeaveFree
parameter (in
megabytes) is always available. The memory available is determined by adding the free
physical memory available on the machine to a percentage of the cache available
(according to the PercentCacheToUse
value).
If the amount of memory available is less than the value of the LeaveFree
parameter, then TEXTML Server reduces its cache to make sure that the amount of
memory specified by the LeaveFree
parameter is
available. If the amount of memory available is more than the value of the LeaveFree
parameter, then TEXTML Server will use the extra
memory until it reaches the value of the LeaveFree
parameter.
Using this parameter can be useful when you cannot predict how much RAM will be available on the system (for example, in a cluster failover).
It can nevertheless be an issue if TEXTML Sever is running on the same machine as other server software (e.g. SQL server) as this server will tend to force the reduction of TEXTML Server memory footprint by expanding its memory usage when under load. This is one of the reasons why it is not recommended to run TEXTML Server alongside other server software.
CacheMaximumMemory
, the LeaveFree
value is ignored. Recommended values
- Low RAM size: 10 GB of RAM
- Medium RAM size: 24 GB of RAM
- High RAM size: 64 GB of RAM
Field | Description | Low | Med | High |
---|---|---|---|---|
|
Specifies the amount of physical
memory, in megabytes, that TEXTML Server tries to keep free in the
overall system by adjusting the cache size. This value configures TEXTML
Server to use the memory that is available; using this parameter can be
useful when you cannot predict how much RAM will be available on the
system (for example, in a cluster failover).
LeaveFree is ignored if a value is specified in CacheMaximumMemory. |
1500 | n/a | n/a |
|
Specifies that when TEXTML Server exceeds its maximum memory allowed it should reduce its memory footprint when idle (strongly recommended to set as true). | True | True | True |
|
If set to a value other than
0, specifies the maximum amount of memory, in megabytes, that TEXTML
Server may use. Note that TEXTML Server will try to reserve this memory,
whether it is available or not. (See also ForceMainMemory.)
If set to 0, TEXTML Server ensures that the amount of
memory specified by the |
0 | 20000 | 40000 |
|
This parameter applies to Windows only. |
False (see note 1) | True | True |
|
Specifies whether a
docbase uses multiple cache pools, which increases performance but
requires more memory. See to True to use this
feature.
Set to False if your deployment uses a low-RAM server (less than 10 Gig) and more than one docbase is installed on this server. |
False | True | True |
|
Specifies the components of a docbase
that should be preloaded in memory when TEXTML Server is started. Valid
values are:
|
None | Index | All |
Note: Setting ForceMainMemory to True forces Windows to allocate
non-swappable memory. Therefore, if there are many processes on
the server, and these processes use a lot of RAM, you may need
to set this parameter to False
for low-RAM deployments if you see performance issues.
|
Example for a high-RAM TEXTML Server
<TextmlServer>
<Server>
...
</Server>
<DocumentBaseProperties>
<Cache>
<FlushFrequency>10</FlushFrequency>
<PoolSize>4</PoolSize>
<LRUTimeOut>300</LRUTimeOut>
<DefragCache>True</DefragCache>
<WaitBeforeFlush>5</WaitBeforeFlush>
<ShrinkPercentage>10</ShrinkPercentage>
<LeaveFree>0</LeaveFree>
<PercentCacheToUse>80</PercentCacheToUse>
<ReduceCacheOnIdle>True</ReduceCacheOnIdle>
<CacheMaximumMemory>40000</CacheMaximumMemory>
<CacheMinimumMemory>1500</CacheMinimumMemory>
<ForceMainMemory>True</ForceMainMemory>
<Trace>False</Trace>
<AllocateMultiplePools>True</AllocateMultiplePools>
</Cache>
...
<IndexPreviousVersionsInfo>False</IndexPreviousVersionsInfo>
<Preload>All</Preload>
...