Do you think you are experiencing memory leak issues? Do you encounter errors like java.lang.OutOfMemoryError:Metaspace and java.lang.OutOfMemoryError:Permgen space? Does your server slow down or crash during the day?
These are some of the symptoms that can be caused by a memory leak in your source code, too many classes, or large classes are being loaded into permanent generation or Metaspace .
FusionReactor is not built for memory analysis down to the object level. However, FusionReactor does provide you with a number of features that you can use in order to investigate these issues.
- You can use the Memory spaces graph which can be found at Resources > Memory Spaces in order to help you diagnose and see where the problem is occurring. You can then generate a heap dump and start interpreting the data to find the issue.
- Additionally, you can also view the Garbage Collection Overview inside FusionReactor to see the amount of freed memory per collection. If garbage collection does not occur regularly then large amounts of memory cannot be freed, and as a result when the garbage collector runs it will be intensive on the CPU. For more information about Garbage Collection, see the following link, https://intergral.atlassian.net/wiki/display/FR62/Garbage+Collection.
- With FusionReactor you are able to see the Slow requests that are currently running on your application server and requests that have finished but took a large amount of time to complete. These requests may be resource intensive and affect the performance of your server.
- Finally, FusionReactor provides you with a number of log files that can be useful identifying memory leak issues and out of memory exceptions. For memory leak issues, you can use the resource.log file and the memorysummary.log file where you can find useful information regarding the total amount of physical memory available to the instance, the amount of used memory, alongside more memory values. For out of memory exceptions, FusionReactor provides a different number of log files that are related to the memory, for example, the memory-PS-Perm-Gen.log file, the memory-PS-Survivor-Space.log file and the memory-PS-Eden-Space.log file. For more information about log files, see the following link, https://intergral.atlassian.net/wiki/display/FR62/Types+of+Memory+Logs.
If you want to make sure that your server is not going to crash or slow down during the day due to memory leak issues, the good news is that FusionReactor can help you.
- Enabling of WebRequest Memory Protection which can be found under Protection > Setting. By enabling WebRequest Memory Protection you will be able to limit the number of requests that are allowed to run on the server, this will be based on the amount of free memory available when the request is initiated. For more information, see the following link, https://intergral.atlassian.net/wiki/display/FR61/Protection+Settings.
- Enabling of WebRequest Runtime Protection which can be found under Protection > Setting, allows you to abort requests that run for longer than you would like. For example, if you want FusionReactor to abort a request after 60 second, you can modify your runtime protection settings to the following configuration:
- Configuring the survival strategy which can be found under the Protection > Setting. allows FusionReactor to attempt to self-heal the situation if crash protection is triggered.
When you have configured the protection settings described above based on your needs, you will have the ability to check the Crash Protection log file which is going to provide you with more information regarding the issue. The Crash Protection log file can be found at FusionReactor > Logs. For more information about the Crash Protection log file, see the following link, https://intergral.atlassian.net/wiki/pages/viewpage.action?pageId=38863291
|Components:||CPU + Memory, Crash Protection|
|Last Updated:||23/Aug/16 12:44 PM|