Reduce the number of Windows API Calls gethostbyname() and gethostbyaddr()


To drastically reduce the number of the Windows API calls gethostbyname() and gethostbyaddr(), an HPOM user-configurable name server cache has been added. It caches the parameter and the returned results of these functions. Whenever a name resolution or reverse name resolution is required for a node, it will be first checked whether the required information is already available in the cache.

If the information is there, then it will be used instead of calling gethostbyname() or gethostbyaddr(). When the maximum number of the cache entries is reached, the entry with the lowest reference count number will be swapped to make space for a new entry. The strategy is to keep those entries which are mostly referenced in the cache. Also the parameter and results of unsuccessful gethostbyname() and gethostbyaddr() calls are kept in the cache. This helps quickly detect nodes which are not resolvable because they might have been deleted from DNS but still send messages as an agent is installed there.

Note NOTE:
Caching is used only if none of the managed nodes are configured for DHCP in the HPOM node configuration. If there are DHCP nodes configured, then the name server cache will be ignored independently of whether it is enabled or disabled.

You can configure the name server cache with two values in the Node Cache Settings namespace in the Server Configuration dialog box: Turn on node cache and Node cache size. After you have changed a value, restart the OvEpMessageActionServer service for the change to take effect.

Registry Name Possible Values Effect
Turn on node cache TRUE, FALSE The default value is TRUE. When set to TRUE, the name server cache is enabled and will be used.
Node cache size Any value greater than 100. Defines the maximum number of entries in the name server cache. It should be set to a minimum value of 100. The maximum value depends on the available main memory and the number of managed nodes.

Recommended setting: Number of managed nodes + 100.

NOTE: the name server cache is located in the address space of OvEpMsgActSrv.exe, so there might be an increased usage of the virtual memory of this process.

Default value=100

Related Topics: