giltene / HeapUseWatcher

HeapUseWatcher: A simple tracker of non-ephemeral heap use and live set

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Please support OpenJ9

isopov opened this issue · comments

It seems that only needed thing is to know the name of old generations. I try it with:

$ mvn clean package
$ docker run -v `pwd`/target:/mnt/target --rm -it adoptopenjdk/openjdk9-openj9:jdk-9.0.4.12_openj9-0.9.0-alpine java -jar /mnt/target/HeapUseWatcher.jar
Exception in thread "main" java.lang.IllegalStateException: No recognized OldGen pool name found. Pool names found include:
class storage
nursery-survivor
nursery-allocate
miscellaneous non-heap storage
JIT code cache
JIT data cache
tenured-SOA
tenured-LOA

	at org.heaputils.HeapUseWatcher$NonEphemeralHeapUseModel.<init>(HeapUseWatcher.java:135)
	at org.heaputils.HeapUseWatcher.<init>(HeapUseWatcher.java:313)
	at org.heaputils.HeapUseWatcher.<init>(HeapUseWatcher.java:329)
	at org.heaputils.HeapUseWatcher.commonMain(HeapUseWatcher.java:436)
	at org.heaputils.HeapUseWatcher.main(HeapUseWatcher.java:477)

It looks like we'll need to add up tenured-SOA and tenured-LOA for this to work right, so it will need a list of nonephemeral pools, and not just one (not hard to add). We'll also need to figure out if the maxAllowed is the sum of the getMax() values on the pools in the list, or the max of them (which one it is can be an attribute determined in the model). Any idea what the behavior is like for that in OpenJ9?