Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A low-cost, always on statistical value history (JDK-8212618) #241

Closed
tstuefe opened this issue Jan 15, 2019 · 0 comments · Fixed by #305
Closed

A low-cost, always on statistical value history (JDK-8212618) #241

tstuefe opened this issue Jan 15, 2019 · 0 comments · Fixed by #305
Labels
sapmachineonly Issues/changes affecting only SapMachine

Comments

@tstuefe
Copy link
Contributor

tstuefe commented Jan 15, 2019

This issue tracks development of JDK-8212618 "A low-cost, always on statistical value history".

This proposed feature has been rejected upstream since it is perceived to collide with JMC/JFR.
We consider it useful enough and the merge cost to be small enough to integrate it into the SapMachine.

Details:

SAP developed a supportability feature called "Statistics History" which is a low cost history of statistical values-of-interest.

These values contain parameters of the jvm (e.g. heap size, metaspace size, number of loaded classes) and the underlying platform (e.g. rss, swapping state, run queue length etc). At intervals of (by default) 60 seconds these values are measured and stored in a fifo buffer.

The fifo buffer has three parts, a short-, medium-, and long term fifo buffer. A fraction of the samples falling out of the short term fifo is transferred to the mid term fifo; again, a fraction of the samples falling out of the mid term fifo is transferred to the long term fifo. So, the short term fifo covers a short recent timespan (usually an hour) in comparativly short sample intervals (usually 60 seconds), whereas the long term fifo covers a very long time span (~10 days) with interval times of hours.

This feature has been very popular with our support folks and so we would like to contribute that. It enables us to easily analyze slowly developing situations like memory leaks, memory or cpu spikes, resource starvation etc.

[1] JDK-8212618 - Original JBS issue, closed as Wont Fix
[2] Patch on Github
[3] Example output

@reshnm reshnm added the sapmachineonly Issues/changes affecting only SapMachine label Jan 15, 2019
@tstuefe tstuefe changed the title Add statistical history to sapmachine11 Add statistical history to sapmachine Feb 25, 2019
@tstuefe tstuefe changed the title Add statistical history to sapmachine A low-cost, always on statistical value history (JDK-8212618) Feb 26, 2019
tstuefe added a commit that referenced this issue Feb 26, 2019
RealCLanger pushed a commit that referenced this issue Mar 1, 2019
tstuefe added a commit that referenced this issue Mar 18, 2019
…istical value history (JDK-8212618)

(cherry picked from commit a5f4735)
@tstuefe tstuefe mentioned this issue Mar 18, 2019
tstuefe added a commit that referenced this issue Mar 19, 2019
…-8212618) - JDK11 version

* SapMachine #241: Initial implementation of a low-cost, always on statistical value history (JDK-8212618)

(cherry picked from commit a5f4735)

* Minor changes to make statistical history compile and work for JDK11:
- class loader data graph coding moved to separate files in JDK12
- In JDK 11, it was not possible to lock the CLDG and hence use it
  outside of a safe point; so I removed all CLDG-related columns.

* SapMachine #321: Minor fixes for statistical history

- possible misprint for CPU values in long term table due to overflow
- possible issues when printing the statistics table with code printing
  in parallel due to temp. change of print locale
- Fix issue which caused RSS details not to be shown even if available.

(cherry picked from commit 641c0b9)

* SapMachine #315: Fix license headers, whitespace and SapMachine tagging

(cherry picked from commit 9455aa0)
RealCLanger pushed a commit that referenced this issue Mar 22, 2019
* Implementation of Statistical History for JDK12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
sapmachineonly Issues/changes affecting only SapMachine
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants