Hi, I am using following java version and see Uncommit feature is disabled by default openjdk version "13.0.1" 2019-10-15 OpenJDK Runtime Environment AdoptOpenJDK (build 13.0.1+9) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 13.0.1+9, mixed mode, sharing) GC logs [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Initializing The Z Garbage Collector [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Version: 13.0.1+9 (release) [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] NUMA Support: Enabled [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] NUMA Nodes: 2 [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] CPUs: 48 total, 48 available [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Memory: 128318M [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Large Page Support: Disabled [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Workers: 40 parallel, 7 concurrent [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Address Space: 0x0000040000000000 - 0x0000140000000000 (16T) [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Heap backed by file: /tmp/java_heap.112273 [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Min Capacity: 80000M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Initial Capacity: 80000M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Max Capacity: 80000M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Max Reserve: 112M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Pre-touch: Enabled [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Available space on backing filesystem: 125929M *[2019-12-10T18:48:30.290+0000][47.126s][info][gc,init] Uncommit: Disabled* [2019-12-10T18:49:30.315+0000][107.151s][info][gc,init] Runtime Workers: 40 parallel [2019-12-10T18:49:30.318+0000][107.155s][info][gc ] Using The Z Garbage Collector ... Is this feature enabled by default in later release only? Thanks Sundar
Hi Sundar, It's described on our project wiki: https://wiki.openjdk.java.net/display/zgc/Main --- Returning Unused Memory to the Operating System By default, ZGC uncommits unused memory, returning it to the operating system. This is useful for applications and environments where memory footprint is a concern. This feature can be disabled using -XX:-ZUncommit. Furthermore, memory will not be uncommitted so that the heap size shrinks below the minimum heap size (-Xms). This means this feature will be implicitly disabled if the minimum heap size (-Xms) is configured to be equal to the maximum heap size (-Xmx). An uncommit delay can be configured using -XX:ZUncommitDelay=<seconds> (default is 300 seconds). This delay specifies for how long memory should have been unused before it's eligible for uncommit. --- Additionally, -Xms sets both -XX:InitialHeapSize and -XX:MinHeapSize, so if you only want to set the lower limit of the amount of committed memory for the heap, you can use -XX:MinHeapSize instead. StefanK On 2019-12-10 19:57, Sundara Mohan M wrote:
Hi, I am using following java version and see Uncommit feature is disabled by default openjdk version "13.0.1" 2019-10-15 OpenJDK Runtime Environment AdoptOpenJDK (build 13.0.1+9) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 13.0.1+9, mixed mode, sharing)
GC logs
[2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Initializing The Z Garbage Collector [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Version: 13.0.1+9 (release) [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] NUMA Support: Enabled [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] NUMA Nodes: 2 [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] CPUs: 48 total, 48 available [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Memory: 128318M [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Large Page Support: Disabled [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Workers: 40 parallel, 7 concurrent [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Address Space: 0x0000040000000000 - 0x0000140000000000 (16T) [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Heap backed by file: /tmp/java_heap.112273 [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Min Capacity: 80000M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Initial Capacity: 80000M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Max Capacity: 80000M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Max Reserve: 112M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Pre-touch: Enabled [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Available space on backing filesystem: 125929M *[2019-12-10T18:48:30.290+0000][47.126s][info][gc,init] Uncommit: Disabled* [2019-12-10T18:49:30.315+0000][107.151s][info][gc,init] Runtime Workers: 40 parallel [2019-12-10T18:49:30.318+0000][107.155s][info][gc ] Using The Z Garbage Collector ... Is this feature enabled by default in later release only?
Thanks Sundar
Hi Stefan, Thanks for the doc. I tried setting min < max and seeing this error [2019-12-10T19:20:10.559+0000][35.277s][error][gc ] Failed to uncommit memory (Not supported) [2019-12-10T19:20:10.560+0000][35.277s][info ][gc,init] Uncommit: Disabled Guess it's related to kernel doesn't support something Linux 2.6.32-754.10.1.el6.20190116.16.x86_64 #1 SMP Wed Jan 16 21:27:59 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux Thanks Sundar On Tue, Dec 10, 2019 at 12:21 PM Stefan Karlsson <stefan.karlsson@oracle.com> wrote:
Hi Sundar,
It's described on our project wiki: https://wiki.openjdk.java.net/display/zgc/Main
--- Returning Unused Memory to the Operating System
By default, ZGC uncommits unused memory, returning it to the operating system. This is useful for applications and environments where memory footprint is a concern. This feature can be disabled using -XX:-ZUncommit. Furthermore, memory will not be uncommitted so that the heap size shrinks below the minimum heap size (-Xms). This means this feature will be implicitly disabled if the minimum heap size (-Xms) is configured to be equal to the maximum heap size (-Xmx).
An uncommit delay can be configured using -XX:ZUncommitDelay=<seconds> (default is 300 seconds). This delay specifies for how long memory should have been unused before it's eligible for uncommit. ---
Additionally, -Xms sets both -XX:InitialHeapSize and -XX:MinHeapSize, so if you only want to set the lower limit of the amount of committed memory for the heap, you can use -XX:MinHeapSize instead.
StefanK
On 2019-12-10 19:57, Sundara Mohan M wrote:
Hi, I am using following java version and see Uncommit feature is disabled by default openjdk version "13.0.1" 2019-10-15 OpenJDK Runtime Environment AdoptOpenJDK (build 13.0.1+9) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 13.0.1+9, mixed mode, sharing)
GC logs
[2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Initializing The Z Garbage Collector [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Version: 13.0.1+9 (release) [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] NUMA Support: Enabled [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] NUMA Nodes: 2 [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] CPUs: 48 total, 48 available [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Memory: 128318M [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Large Page Support: Disabled [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Workers: 40 parallel, 7 concurrent [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Address Space: 0x0000040000000000 - 0x0000140000000000 (16T) [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Heap backed by file: /tmp/java_heap.112273 [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Min Capacity: 80000M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Initial Capacity: 80000M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Max Capacity: 80000M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Max Reserve: 112M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Pre-touch: Enabled [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Available space on backing filesystem: 125929M *[2019-12-10T18:48:30.290+0000][47.126s][info][gc,init] Uncommit: Disabled* [2019-12-10T18:49:30.315+0000][107.151s][info][gc,init] Runtime Workers: 40 parallel [2019-12-10T18:49:30.318+0000][107.155s][info][gc ] Using The Z Garbage Collector ... Is this feature enabled by default in later release only?
Thanks Sundar
Hi, On 12/10/19 9:28 PM, Sundara Mohan M wrote:
Hi Stefan, Thanks for the doc.
I tried setting min < max and seeing this error
[2019-12-10T19:20:10.559+0000][35.277s][error][gc ] Failed to uncommit memory (Not supported) [2019-12-10T19:20:10.560+0000][35.277s][info ][gc,init] Uncommit: Disabled
Guess it's related to kernel doesn't support something Linux 2.6.32-754.10.1.el6.20190116.16.x86_64 #1 SMP Wed Jan 16 21:27:59 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Yes, your kernel is too old. As mentioned in the JEP [1], uncommitting memory requires fallocate(2) with FALLOC_FL_PUNCH_HOLE support, which first appeared in Linux 3.5 for tmpfs, and 4.3 for hugetlbfs (i.e. when using -XX:+UseLarePages). I'll update the wiki to include that information. [1] https://openjdk.java.net/jeps/351 /Per
Thanks Sundar
On Tue, Dec 10, 2019 at 12:21 PM Stefan Karlsson <stefan.karlsson@oracle.com> wrote:
Hi Sundar,
It's described on our project wiki: https://wiki.openjdk.java.net/display/zgc/Main
--- Returning Unused Memory to the Operating System
By default, ZGC uncommits unused memory, returning it to the operating system. This is useful for applications and environments where memory footprint is a concern. This feature can be disabled using -XX:-ZUncommit. Furthermore, memory will not be uncommitted so that the heap size shrinks below the minimum heap size (-Xms). This means this feature will be implicitly disabled if the minimum heap size (-Xms) is configured to be equal to the maximum heap size (-Xmx).
An uncommit delay can be configured using -XX:ZUncommitDelay=<seconds> (default is 300 seconds). This delay specifies for how long memory should have been unused before it's eligible for uncommit. ---
Additionally, -Xms sets both -XX:InitialHeapSize and -XX:MinHeapSize, so if you only want to set the lower limit of the amount of committed memory for the heap, you can use -XX:MinHeapSize instead.
StefanK
On 2019-12-10 19:57, Sundara Mohan M wrote:
Hi, I am using following java version and see Uncommit feature is disabled by default openjdk version "13.0.1" 2019-10-15 OpenJDK Runtime Environment AdoptOpenJDK (build 13.0.1+9) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 13.0.1+9, mixed mode, sharing)
GC logs
[2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Initializing The Z Garbage Collector [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Version: 13.0.1+9 (release) [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] NUMA Support: Enabled [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] NUMA Nodes: 2 [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] CPUs: 48 total, 48 available [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Memory: 128318M [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Large Page Support: Disabled [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Workers: 40 parallel, 7 concurrent [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Address Space: 0x0000040000000000 - 0x0000140000000000 (16T) [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Heap backed by file: /tmp/java_heap.112273 [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Min Capacity: 80000M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Initial Capacity: 80000M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Max Capacity: 80000M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Max Reserve: 112M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Pre-touch: Enabled [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Available space on backing filesystem: 125929M *[2019-12-10T18:48:30.290+0000][47.126s][info][gc,init] Uncommit: Disabled* [2019-12-10T18:49:30.315+0000][107.151s][info][gc,init] Runtime Workers: 40 parallel [2019-12-10T18:49:30.318+0000][107.155s][info][gc ] Using The Z Garbage Collector ... Is this feature enabled by default in later release only?
Thanks Sundar
Cool, thanks! On Wed, Dec 11, 2019 at 12:21 AM Per Liden <per.liden@oracle.com> wrote:
Hi,
On 12/10/19 9:28 PM, Sundara Mohan M wrote:
Hi Stefan, Thanks for the doc.
I tried setting min < max and seeing this error
[2019-12-10T19:20:10.559+0000][35.277s][error][gc ] Failed to uncommit memory (Not supported) [2019-12-10T19:20:10.560+0000][35.277s][info ][gc,init] Uncommit: Disabled
Guess it's related to kernel doesn't support something Linux 2.6.32-754.10.1.el6.20190116.16.x86_64 #1 SMP Wed Jan 16 21:27:59 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Yes, your kernel is too old. As mentioned in the JEP [1], uncommitting memory requires fallocate(2) with FALLOC_FL_PUNCH_HOLE support, which first appeared in Linux 3.5 for tmpfs, and 4.3 for hugetlbfs (i.e. when using -XX:+UseLarePages).
I'll update the wiki to include that information.
[1] https://openjdk.java.net/jeps/351
/Per
Thanks Sundar
On Tue, Dec 10, 2019 at 12:21 PM Stefan Karlsson <
stefan.karlsson@oracle.com>
wrote:
Hi Sundar,
It's described on our project wiki: https://wiki.openjdk.java.net/display/zgc/Main
--- Returning Unused Memory to the Operating System
By default, ZGC uncommits unused memory, returning it to the operating system. This is useful for applications and environments where memory footprint is a concern. This feature can be disabled using -XX:-ZUncommit. Furthermore, memory will not be uncommitted so that the heap size shrinks below the minimum heap size (-Xms). This means this feature will be implicitly disabled if the minimum heap size (-Xms) is configured to be equal to the maximum heap size (-Xmx).
An uncommit delay can be configured using -XX:ZUncommitDelay=<seconds> (default is 300 seconds). This delay specifies for how long memory should have been unused before it's eligible for uncommit. ---
Additionally, -Xms sets both -XX:InitialHeapSize and -XX:MinHeapSize, so if you only want to set the lower limit of the amount of committed memory for the heap, you can use -XX:MinHeapSize instead.
StefanK
On 2019-12-10 19:57, Sundara Mohan M wrote:
Hi, I am using following java version and see Uncommit feature is disabled by default openjdk version "13.0.1" 2019-10-15 OpenJDK Runtime Environment AdoptOpenJDK (build 13.0.1+9) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 13.0.1+9, mixed mode, sharing)
GC logs
[2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Initializing The Z Garbage Collector [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Version: 13.0.1+9 (release) [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] NUMA Support: Enabled [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] NUMA Nodes: 2 [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] CPUs: 48 total, 48 available [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Memory: 128318M [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Large Page Support: Disabled [2019-12-10T18:47:43.171+0000][0.007s][info][gc,init] Workers: 40 parallel, 7 concurrent [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Address Space: 0x0000040000000000 - 0x0000140000000000 (16T) [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Heap backed by file: /tmp/java_heap.112273 [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Min Capacity: 80000M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Initial Capacity: 80000M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Max Capacity: 80000M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Max Reserve: 112M [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Pre-touch: Enabled [2019-12-10T18:47:43.174+0000][0.010s][info][gc,init] Available space on backing filesystem: 125929M *[2019-12-10T18:48:30.290+0000][47.126s][info][gc,init] Uncommit: Disabled* [2019-12-10T18:49:30.315+0000][107.151s][info][gc,init] Runtime Workers: 40 parallel [2019-12-10T18:49:30.318+0000][107.155s][info][gc ] Using The Z Garbage Collector ... Is this feature enabled by default in later release only?
Thanks Sundar
participants (3)
-
Per Liden
-
Stefan Karlsson
-
Sundara Mohan M