RFR: 8307374: Add a JFR event for tracking RSS
Stefan Karlsson
stefank at openjdk.org
Mon Jun 5 08:04:08 UTC 2023
On Mon, 5 Jun 2023 07:01:05 GMT, Roberto Castañeda Lozano <rcastanedalo at openjdk.org> wrote:
>> Add A JFR event to track the resident set size (RSS) of the running process. This is a good complement to the new Native Memory Tracking events that were added for JDK 20 ([JDK-8157023](https://bugs.openjdk.org/browse/JDK-8157023))
>>
>> You can use the JDK Mission Control tool to extract this data. Or, you can use the new [JFR Views](https://egahlin.github.io/2023/05/30/views.html) tool to get a textual representation of the values:
>>
>>
>> # Create a JFR recording
>> $ jdk/bin/java -XX:StartFlightRecording=dumponexit=true JavaApp
>>
>> # Extract the data from that recording
>> $ jdk/bin/jfr view ResidentSetSize hotspot-pid-204767-id-1-2023_06_02_11_56_19.jfr
>>
>> Resident Set Size
>>
>> Time Resident Set Size Resident Set Size Peak Value
>> ---------------- ------------------------- ------------------------------------
>> 11:56:07 1.1 GB 1.2 GB
>> 11:56:08 333.7 MB 1.2 GB
>> 11:56:09 432.4 MB 1.2 GB
>> 11:56:10 695.9 MB 1.2 GB
>> 11:56:11 1.0 GB 1.2 GB
>> 11:56:12 1.3 GB 1.3 GB
>> 11:56:13 1.3 GB 1.3 GB
>> 11:56:14 1.3 GB 1.3 GB
>> 11:56:15 1.3 GB 1.3 GB
>> 11:56:16 1.3 GB 1.3 GB
>> 11:56:17 1.4 GB 1.4 GB
>> 11:56:18 1.8 GB 1.8 GB
>> 11:56:19 2.0 GB 2.0 GB
>>
>>
>> The event has been implemented for Linux, MacOS, and Windows. The name ResidentSetSize isn't a perfect fit for the values extracted from MacOS and Windows, but I think it is better to name this after something that many people are familiar with instead of trying to find a generic name that fits all platforms. Do you agree with that, or should we change it to something else?
>>
>> I've manually sanity checked that we get reasonable values on all OS:es. I've also added a jtreg test.
>
> test/jdk/jdk/jfr/event/runtime/TestResidentSetSizeEvent.java line 2:
>
>> 1: /*
>> 2: * Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
>
> Is the `2022, 2023` intentional or should it just be `2023`?
It was intentional since I copy-n-pasted the structure of the code from the NMT JFR test.
> test/jdk/jdk/jfr/event/runtime/TestResidentSetSizeEvent.java line 31:
>
>> 29: import static jdk.test.lib.Asserts.assertEquals;
>> 30:
>> 31: import java.time.Instant;
>
> These three imports are unused.
Thanks. Will remove them.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14285#discussion_r1217681022
PR Review Comment: https://git.openjdk.org/jdk/pull/14285#discussion_r1217681215
More information about the hotspot-dev
mailing list