IBM Support

Domino 32-bit runs poorly on Windows 64-bit

Technote (troubleshooting)


Problem

When running a Lotus Domino 32-bit server on Microsoft Windows 64-bit, you notice a high memory allocation. This results in poor system performance and the server being low on physical memory.

Cause

This is a result of a change Microsoft has made to their API SetSystemFilecache(). The file system cache on 64-bit versions of Windows by default will attempt to use the majority of system memory, and may thus cause issues for applications running on the platform.

Environment

This issue only occurs with Microsoft Windows 64-bit operating systems when running Domino 32-Bit Server.

Diagnosing the problem


If you suspect you have this known Cacheset issue, collect normal debug information: NSD's, Console Logs, Semdebug, OS Files WinMSD, and Application & System Event Viewer Files.

Complete the following steps:

1. Issue the following command on the Domino Server Console: Load Cacheset -g

or

Open a Command Prompt:

Change Directory to your data drive, for example, D:

Change Directory to the Domino directory of the Domino server, for example, D:> cd\Lotus\Domino

2. Once pathed to the Domino folder, issue the following command which will pipe the info to a text file on the root of C:

D:> cd\Lotus\Domino> cacheset -g >c:\cacheset1.txt

3. Capture a screen shot of the Task Manager Performance Tab


Example output running the above test with 6GB on there server:

(6GB) 6291456 KB * (30%) .30 = 1887436.8 KB (1.8GB) <--This Should be the Cacheset Value


Here is cacheset after OS Reboot (Domino not running) -->
Existing file system cache values are minSizeRead 1980 kb, maxSizeRead 5158384 kb, flags 0

Here is cacheset after starting Domino (Same Domino did not change this) -->
Existing file system cache values are minSizeRead 1980 kb, maxSizeRead 5158384 kb, flags 0

The correct value should be roughly 30% of Physical Memory:

Here are the cacheset values after Domino is started when working correctly-->
Existing file system cache values are minSizeRead 1980 kb, maxSizeRead 1887128 kb, flags 1


Resolving the problem

This issue has been reported in the following SPRs.

Step 1
You must upgrade to the versions where this issue is fixed or obtain a hotfix to correct this issue.

Domino 7.0.1, 7.0.2, 7.0.3

SPR
Description
Fixed in
FMEG6W3G25 Intensive READ_ENTRIES & SET_COLLATION transactions degrade Domino server performance Domino 7.0.4, 8.0.1 and 8.5
KBRN7DWQ8M Fixed an ordering issue on multi/div in cache set code Domino 7.0.4, 8.0.2 and 8.5
** Requires Server Notes.ini parameter OS_CACHESET_ON=1 **


Domino 7.0.4

SPR
Description
Fixed in
KHAN7HFQDP Cacheset utility needs debug; detection of OS level required to run Cacheset can be problematic

The debug:
DEBUG_OS_CACHESET=1

To automatically run cacheset at OS layer init, regardless of OS level:
OS_CACHESET_ON=1
Domino 8.5
DADS7NCLU2 Cacheset.exe is not running on start-up on Windows 64 Bit server with Domino 8.5 (32-Bit) server

As a workaround:
Make a Copy of Cacheset.exe in a folder other than the Domino Program Directory. Rename Cacheset.exe to nCacheset.exe and then copy nCacheset.exe back to the Program Directory. This way when you upgrade to a version where this is fixed the original file cacheset.exe is still there.

With Cacheset.exe, Domino 64-bit call the API directly. Domino 32-bit will check the Operating System, but will not call this API.

The Cacheset.exe utility is used to Constrain the Windows 64-bit File System cache and this is different and should not be confused with Microsoft Sysinternals CacheSET 1.0.
Domino 8.0.2 FP4 and 8.5.1
** Requires Server Notes.ini parameter OS_CACHESET_ON=1 **


Domino 8.0 and 8.0.1

SPR
Description
Fixed in
FMEG6W3G25 Intensive READ_ENTRIES & SET_COLLATION transactions degrade Domino server performance Domino 7.0.4, 8.0.1 and 8.5
KBRN7DWQ8M Fixed an ordering issue on multi/div in cache set code Domino 7.0.4, 8.0.2 and 8.5
KHAN7HFQDP Cacheset utility needs debug; detection of OS level required to run Cacheset can be problematic

The debug:
DEBUG_OS_CACHESET=1

To automatically run cacheset at OS layer init, regardless of OS level:
OS_CACHESET_ON=1
Domino 8.5
** Requires Server Notes.ini Parameter OS_CACHESET_ON=1 **


Domino 8.0.2

SPR
Description
Fixed in
KHAN7HFQDP Cacheset utility needs debug; detection of OS level required to run cacheset can be problematic

The debug:
DEBUG_OS_CACHESET=1

To automatically run cacheset at OS layer init, regardless of OS level:
OS_CACHESET_ON=1
Domino 8.5
** Requires Server Notes.ini parameter OS_CACHESET_ON=1 **


Domino 8.5 32-bit on Windows 64-bit

SPR
Description
Fixed in
DADS7NCLU2 Cacheset.exe is not running on start-up on Windows 64 Bit server with Domino 8.5 (32-Bit) server

As a workaround:
Make a Copy of Cacheset.exe in a folder other than the Domino Program Directory. Rename Cacheset.exe to nCacheset.exe and then copy nCacheset.exe back to the Program Directory. This way when you upgrade to a version where this is fixed the original file cacheset.exe is still there.

With Cacheset.exe, Domino 64-bit call the API directly. Domino 32-bit will check the Operating System, but will not call this API.

The Cacheset.exe utility is used to Constrain the Windows 64-bit File System cache and this is different and should not be confused with Microsoft Sysinternals CacheSET 1.0.
Domino 8.0.2 FP4 and 8.5.1
** Does not require Notes.ini parameter OS_CACHESET_ON=1 **


Step 2
Now that you have the correct fix installed on your machine, you can change the Cacheset Percent value. By default, Domino will set this maximum size to 30% of the physical memory on the system. As an enhancement, Domino also allows you to configure the percentage using the newly added Domino Notes.ini variable:

MEM_FSCachePercentMem=x

This parameter allows values from 10 through 95 percent. If the value is set higher or lower than those values, the setting reverts to the default of 30.

Example:
  • Setting MEM_FSCachePercentMem=40 will cause Domino to set the maximum file system cache size to 40% of the physical memory on the system.
  • Setting MEM_FSCachePercentMem=5 will cause Domino to set the maximum file system cache size to 30% of the physical memory on the system - given that 5 is below the allowable minimum value.

The file system cache on 64-bit versions of Windows will, by default, attempt to use the majority of system memory, and may thus cause issues for applications running on the platform. This is due in part to the fact that the "default" setting for the file system cache moved from 1GB on 32-bit Windows to 1TB on 64-bit Windows.

To address this issue (as well as possible for an application), Lotus has implemented code within Domino which calls the Microsoft API SetSystemFileCacheSize(), in order to set a maximum size. By default, Domino will set this maximum size to 30% of the physical memory on the system. A user can change this setting by setting the notes.ini variable MEM_FSCachePercentMem to a percent number, to indicate the percent of memory.

For example, setting MEM_FSCachePercentMem=40 in the notes.ini will cause Domino to set the maximum file system cache size to 40% of the physical memory on the system. Note that the lowest number presently supported is 10%, and the highest number is 95%; numbers outside these limits will be set to the default of 30%.

Key notes

  1. This setting is system-wide and affects all processes on the system, as it affects the file system cache for the machine
  2. This setting must be set identically within each Domino partition on a system. Since it is a global setting, if one partition is 70 and another 30, then the setting of one will get overridden by the other when the second partition is launched
  3. In order to make this change in the file system cache setting, the user must have the SE_INCREASE_QUOTA_NAME privilege, otherwise the setting of the cache will fail
  4. This API requires 64-bit Windows 2003/XP to be at SR2/SP2 or higher, otherwise the API will not be available. 64-bit Windows Vista and 64-bit Windows 2008 both have this API initially.

Related information

A simplified Chinese translation is available

Document information

More support for: IBM Domino
Performance / Hang

Software version: 7.0, 8.0, 8.5

Operating system(s): Windows

Reference #: 1391477

Modified date: 29 April 2010