# Ignition Performance Issue - determination of cause

**URL:** <https://forum.inductiveautomation.com/t/ignition-performance-issue-determination-of-cause/25231>\
**Category:** Ignition\
**Tags:** ignition79\
**Created:** [May 22, 2019, 3:12pm UTC](https://forum.inductiveautomation.com/t/ignition-performance-issue-determination-of-cause/25231 "2019-05-22T15:12:13Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![kevin.deyoung](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.deyoung/32/9558_2.png) [@kevin.deyoung](https://forum.inductiveautomation.com/u/kevin.deyoung)\
**Post date:** [May 22, 2019, 3:12pm UTC](https://forum.inductiveautomation.com/t/ignition-performance-issue-determination-of-cause/25231/1 "2019-05-22T15:12:13Z")

</div>

I am experiencing a performance issue with one instance of Ignition. The indications of the issue are pretty obvious when using the tools provided with Ignition. The first clue is the log entries that appear frequently in the log indicating “pause-the-world” detected. Another clue is the level of heap memory that is being consumed and apparently not being released. Of the 2048 max defined we are using nearly all of it. The typical saw tooth use/recovery pattern seen in most instances doesn’t seem to be present. On the Ignition Gateway performance display i frequently see CPU utilization in the 85 - 95 % range and then returning to normal levels around 2%. During the high CPU utilization periods the Windows Task Manager show Java.exe as the primary CPU consumer. How can I narrow the search for what specifically is consuming the heap and what exactly is consuming the CPU?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [May 22, 2019, 4:11pm UTC](https://forum.inductiveautomation.com/t/ignition-performance-issue-determination-of-cause/25231/2 "2019-05-22T16:11:35Z")

</div>

I’ve used a jmap histogram to identify troublesome class allocations. It’s pretty raw, but problems usually stick out like sore thumbs. This topic at StackOverflow discusses some of the tools and techniques:

> <https://stackoverflow.com/questions/24033875/how-to-use-java-memory-histogram-jmap>

Also, if you aren’t using [G1GC](http://forum.inductiveautomation.com/search?q=G1GC), switch before doing anything else.

---

<div class="post-metadata">

**Author:** ![kevin.deyoung](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.deyoung/32/9558_2.png) [@kevin.deyoung](https://forum.inductiveautomation.com/u/kevin.deyoung)\
**Post date:** [May 22, 2019, 6:33pm UTC](https://forum.inductiveautomation.com/t/ignition-performance-issue-determination-of-cause/25231/3 "2019-05-22T18:33:14Z")

</div>

Silly question but, how do you get jmap installed? This instance of Ignition is running on a Windows Server 2012 R2 VM.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [May 22, 2019, 7:48pm UTC](https://forum.inductiveautomation.com/t/ignition-performance-issue-determination-of-cause/25231/4 "2019-05-22T19:48:45Z")

</div>

It’s part of the JDK.
