The System Utilization monitor contains an embedded collector daemon that runs on systems affected by a Java process fork memory issue (RFE 5049299).
When a process attempts to fork a child process, the system attempts to allocate the same amount of memory for the child process, which will likely fail when the parent process consumes a large amount of memory.
The embedded collector daemon is started automatically for the server and inspects the Host System Monitor provider configuration to conditionally determine whether the external daemon process is required.
The external collector daemon operates by having an internal table of repeatable commands that run on a schedule. The collector creates a simulated filesystem in the <server-root>/logs directory for each command type so that the Host System Monitor Provider can find the output of the most recently collected data.
Repeating commands use a subdirectory for each command type to keep results isolated from
other command types and to help organize file cleanup. The filename of the output
contains the sample timestamp, such as
the collector daemon fails for any reason, the Host System Monitor provider is not left
reading stale system data because the expected timestamp files is missing. To handle
clock-edge timing, the monitor sampler will also look for data in a filename of the
previous second. Timestamp files are deleted once their data have been collected.
The collector daemon runs with no inter-process communication and can be stopped if no longer necessary.