These switches specify the maximum and initial size (respectively), in bytes, of the memory allocation pool (the heap). Each value must be a multiple of 1024 and greater than 512 MB. Append the letter m or M to indicate megabytes, or g or G to indicate gigabytes.
Increasing memory can improve the server’s performance. You should run the server with the default settings first. Close monitoring of Server Load in the Performance Overview dashboard (Foglight|Diagnostic) will reveal any over-utilization or under-utilization of memory:
THEN increase the maximum heap size
THEN consider decreasing the heap size to a lower value between the highest minimum of the memory_usage plot and the totalMemory to reduce resource allocation
- Hard page faults are giving away “over-allocation” (1 GB for the OS + 12 GB for the VM heap + 2 GB for the VM overhead + 1 GB for the Agent Manager and the agents + 2 GB for an embedded MySQL database is more than enough for a 16 GB setup).
When optimizing Agent Manager startup JVM parameters, the -Xms and -Xmx values do not have to be the same, because the memory usage pattern of the Agent Manager is quite different from that of the Management Server. For the Agent Manager, -Xms should be set to the lowest estimated value of the expected steady state of the Agent Manager when running all agent instances. This -Xms configuration is different from what is recommended for the Management Server.
These switches specify the (initial/maximum) size of the young object space where new objects are allocated. For the NewSize switches, append the letter m or M to indicate megabytes, or g or G to indicate gigabytes.
Foglight® receives and processes a lot of transient data that is best handled in the JVM’s new generation part of the heap. If you reserve a minimum size for this type of memory, that guarantees fast throughput with low memory management overhead. The result of a large young space size may be increased garbage collection pause times.
This switch specifies the memory allocated to hold the reflective data (such as class objects and method objects) of the VM itself. These reflective objects are allocated directly into the permanent generation, which is sized independently from the other generations.