See information about the latest product version
Good operating practice: Analyzing parser statistics reports to reduce memory usage
When an integration server is using an unexpected amount of memory, identifying the cause of this usage can be difficult. There are two metrics that relate to memory usage, which can be extracted for an integration node.
- JVM statistics. The JVM statics gives the size of the JVM heap, and this size shows if many Java™ objects are in scope.
- Parser statistics. The parser statistics provide information on the number of parsed fields that are cached for the integration server. One of the columns in these statistics is ApproxMemKb, which reports the basic amount of memory that is being occupied by the cached fields.
This Good operating practice document explains what the statistics mean, how you can diagnose your memory issue, and gives some examples on interpreting the statistic reports and using ESQL best operating practices to improve efficiency.
Why is there no node name associated with parser statistics?
- The node that created it?
- The node that last parsed any fields?
- The node that caused the most parsing to take place?
With these details in mind, the node information becomes less useful when you consider the operations of a parser. Even if useful node information can be determined, the resource statistics does not allow the storing of character data that can be changed. To maintain high performance, the resource statistics does not lock the update side of the statistics, and as such relies on reading a set amount of memory atomically. This behavior is possible with numeric data, but is not possible using character data. Therefore, storing any character data involves locking the flows operations while the statistics are read, which is unacceptable when you consider performance. For these reasons, no node name is included in parser statistics.