Understanding the effects of physical memory
Adequate physical memory also affects server responsiveness, but to a lesser degree than the CPU, and has a greater effect on the ability of a Meridian application server to handle large numbers of users and many documents.
The amount of total memory used by the Meridian EDM Server process depends primarily on the following factors:
- The number of simultaneous users connected to the server computer via the client software applications. On average, 12–25 MB of RAM will be used by each user, depending on the ObjectsCacheDepth setting (the number of objects to cache for each user) and the configuration of the vaults to which the users are connected (the number of objects required for users to perform their tasks). This memory contains navigation view data, collection data, search results data, and cached vault objects.
- The total of all Maximum Cache Size settings of all active vaults on the server computer. More vaults, even inactive ones, consume more memory. The Maximum Cache Size setting affects the amount of memory used for the database cache of each vault and therefore will affect the amount of memory consumed by the EDM Server process.
After a Meridian application server boots and all applications are loaded, there are only two memory pools that are variable in size, the user sessions pool and the database caches. Without enough physical memory for either of these, performance will begin to suffer. It is also at that point that virtual memory performance becomes a major factor, as described in Understanding the effects of virtual memory.
There are no size recommendations for these pools that apply to every configuration. Each limits the maximum size of the other. More users can be accommodated by fewer and smaller vaults, more and larger vaults can only accommodate fewer users. But the approximate size of each can be calculated with the following formulas:
- User sessions pool size = # users X 25 MB. This is an approximate maximum. The actual amount used is also determined by the ObjectsCacheDepth setting described in Configuring the ObjectsCacheDepth setting.
-
Database caches pool size = The sum of the size of all vault caches as described in Configuring the MaximumCacheSize setting.
Calculating the size of the cache for a vault that doesn't exist yet, is more complicated. The approximate size can be predicted by the following formula:
Hypertrieve database file size = # documents X # avg. revisions per document X (# avg. properties per document X avg. property size)
Following is an example calculation:
50,000 documents X 3 avg. revisions per document X (75 avg. properties per document X 4 Bytes) = 45 MB
If the desired number of users and vaults cannot be accommodated with these constraints, you should consider moving other applications (for example, SQL Server) and services (for example, Task Server) to a different server to free up more memory.
For recommended configurations for various ranges of users and database sizes, see About Meridian deployment strategies.