[
https://issues.jboss.org/browse/WFLY-6046?page=com.atlassian.jira.plugin....
]
Ken Wills updated WFLY-6046:
----------------------------
Description:
Since PermGen is no longer used, and has been replaced by Metasize, we probably need to
alter the initial startup values. Current WF is using:
-XX:MaxMetaspaceSize=256m
After some testing with garbage collection logging on (\-verbose:gc \-Xloggc:hcgc.log
\-XX:+PrintGCDateStamps \-XX:MetaspaceSize=XX), the GC logs were monitored for at least
one occurrence of a full GC due to Metadata threshold (example [Full GC (Metadata GC
Threshold) 39592K->20187K). Using this information, minimum levels of Metasize for
various configurations were determined.
The numbers below are the values used for \-XX:MetaspaceSize=XXM followed by the number of
full GCs triggered at that amount measured during boot of WF10-full:
Standalone:
{quote}
standalone.xml 52MB(1), 53MB(0)
standalone-full.xml 64MB(1), 65MB(0)
standalone-ha.xml 52MB(1), 54MB(0)
standalone-full-ha.xml 79MB(1), 80MB(0)
{quote}
For domain mode, the corresponding values were determined to be:
{quote}
Process Controller: 12MB(1), 13MB(0)
Host Controller: 39MB(1), 40MB(0)
{quote}
In domain mode, a very slight, non-scientifically measure boot time difference was
observered (1769ms default Metasize vs 1694ms with 40m MetaSize set for host controller).
The approximate cost of increasing MetaSize over the default is summerized below (using
top to collect RSS after server boot):
JBoss AS 7.1.1: (default permgen (-XX:PermSize=256m -XX:MaxPermSize=256m), JDK 7)
||Configuration||RSS(KB)||
|standalone.xml| 182,652 |
|standalone-ha.xml | 211,672 |
|standalone-full.xml | 217,636 |
|standalone-full-ha.xml | 289,524 |
|domain:||
| Server-one: | 227,220 |
| Server-two: | 234,944 |
| PC: | 37,584 |
| HC: | 138,428 |
Wildfly 10: (default Metasize == 21M)
||Configuration||RSS(KB)||
|standalone.xml | 293,576 |
|standalone-ha.xml | 303,344 |
|standalone-full.xml | 388,660 |
|standalone-full-ha.xml | 478,576 |
|domain: ||
| Server-one: | 379,076 |
| Server-two: | 377,516 |
| PC: | 55,000 |
| HC: | 272,120 |
Wildfly 10: (Metasize == 64M)
|standalone.xml | 290,236 |
|standalone-ha.xml | 306,032 |
|standalone-full.xml | 396,596 |
|standalone-full-ha.xml | 501,576 |
|domain:|
| Server-one: |
| Server-two: |
| PC: |
| HC: |
Wildfly 10: (Metasize == 96M)
||Configuration||RSS(KB)||
|standalone.xml |317,996 |
|standalone-ha.xml | 306,516 |
|standalone-full.xml |416,008 |
|standalone-full-ha.xml |460,952 |
|domain: |
| Server-one: | 380,816 |
| Server-two: | 374,300 |
| PC: | 55,308 |
| HC: | 273,220 |
Additional measurements. Using just Wildfly-core, the following RSS sizes are measured for
the indicated Metasize:
Wildfly-10 Core master
||Metasize || RSS(KB) ||
|21m | 117,760|
|64m | 120,772|
|96m | 131,104|
Based on the memory impact of defaulting to 96M (approx 30mb initially over the default
value of 21mb), it would seem to make sense to use this as a default value.
This value allows maintaining boot times without incurring a full GC due to Metasize and
provides enough initial Metasize to both start the application server and perhaps deploy
an application without incurring any performance penalty.
was:
Since PermGen is no longer used, and has been replaced by Metasize, we probably need to
alter the initial startup values. Current WF is using:
-XX:MaxMetaspaceSize=256m
After some testing with garbage collection logging on (\-verbose:gc \-Xloggc:hcgc.log
\-XX:+PrintGCDateStamps \-XX:MetaspaceSize=XX), the GC logs were monitored for at least
one occurrence of a full GC due to Metadata threshold (example [Full GC (Metadata GC
Threshold) 39592K->20187K). Using this information, minimum levels of Metasize for
various configurations were determined.
The numbers below are the values used for \-XX:MetaspaceSize=XXM followed by the number of
full GCs triggered at that amount measured during boot of WF10-full:
Standalone:
{quote}
standalone.xml 52MB(1), 53MB(0)
standalone-full.xml 64MB(1), 65MB(0)
standalone-ha.xml 52MB(1), 54MB(0)
standalone-full-ha.xml 79MB(1), 80MB(0)
{quote}
For domain mode, the corresponding values were determined to be:
{quote}
Process Controller: 12MB(1), 13MB(0)
Host Controller: 39MB(1), 40MB(0)
{quote}
In domain mode, a very slight, non-scientifically measure boot time difference was
observered (1769ms default Metasize vs 1694ms with 40m MetaSize set for host controller).
The approximate cost of increasing MetaSize over the default is summerized below (using
top to collect RSS after server boot):
JBoss AS 7.1.1: (default permgen (-XX:PermSize=256m -XX:MaxPermSize=256m), JDK 7)
||Configuration||RSS(KB)||
|standalone.xml| 182,652 |
|standalone-ha.xml | 211,672 |
|standalone-full.xml | 217,636 |
|standalone-full-ha.xml | 289,524 |
|domain:||
| Server-one: | 227,220 |
| Server-two: | 234,944 |
| PC: | 37,584 |
| HC: | 138,428 |
Wildfly 10: (default Metasize == 21M)
||Configuration||RSS(KB)||
|standalone.xml | 293,576 |
|standalone-ha.xml | 303,344 |
|standalone-full.xml | 388,660 |
|standalone-full-ha.xml | 478,576 |
|domain: ||
| Server-one: | 379,076 |
| Server-two: | 377,516 |
| PC: | 55,000 |
| HC: | 272,120 |
Wildfly 10: (Metasize == 64M)
|standalone.xml | 290,236 |
|standalone-ha.xml | 306,032 |
|standalone-full.xml | 396,596 |
|standalone-full-ha.xml | 501,576 |
|domain:|
| Server-one: |
| Server-two: |
| PC: |
| HC: |
Wildfly 10: (Metasize == 96M)
||Configuration||RSS(KB)||
|standalone.xml |317,996 |
|standalone-ha.xml | 306,516 |
|standalone-full.xml |416,008 |
|standalone-full-ha.xml |460,952 |
|domain: |
| Server-one: | 380,816 |
| Server-two: | 374,300 |
| PC: | 55,308 |
| HC: | 273,220 |
Based on the memory impact of defaulting to 96M (approx 30mb initially over the default
value of 21mb), it would seem to make sense to use this as a default value.
Additional measurements. Using just Wildfly-core, the following RSS sizes are measured for
the indicated Metasize:
Wildfly-10 Core master
||Metasize || RSS(KB) ||
|21m | 117,760|
|64m | 120,772|
|96m | 131,104|
Suggested defaults for Metasize and Java 8
------------------------------------------
Key: WFLY-6046
URL:
https://issues.jboss.org/browse/WFLY-6046
Project: WildFly
Issue Type: Enhancement
Reporter: Ken Wills
Assignee: Ken Wills
Since PermGen is no longer used, and has been replaced by Metasize, we probably need to
alter the initial startup values. Current WF is using:
-XX:MaxMetaspaceSize=256m
After some testing with garbage collection logging on (\-verbose:gc \-Xloggc:hcgc.log
\-XX:+PrintGCDateStamps \-XX:MetaspaceSize=XX), the GC logs were monitored for at least
one occurrence of a full GC due to Metadata threshold (example [Full GC (Metadata GC
Threshold) 39592K->20187K). Using this information, minimum levels of Metasize for
various configurations were determined.
The numbers below are the values used for \-XX:MetaspaceSize=XXM followed by the number
of full GCs triggered at that amount measured during boot of WF10-full:
Standalone:
{quote}
standalone.xml 52MB(1), 53MB(0)
standalone-full.xml 64MB(1), 65MB(0)
standalone-ha.xml 52MB(1), 54MB(0)
standalone-full-ha.xml 79MB(1), 80MB(0)
{quote}
For domain mode, the corresponding values were determined to be:
{quote}
Process Controller: 12MB(1), 13MB(0)
Host Controller: 39MB(1), 40MB(0)
{quote}
In domain mode, a very slight, non-scientifically measure boot time difference was
observered (1769ms default Metasize vs 1694ms with 40m MetaSize set for host controller).
The approximate cost of increasing MetaSize over the default is summerized below (using
top to collect RSS after server boot):
JBoss AS 7.1.1: (default permgen (-XX:PermSize=256m -XX:MaxPermSize=256m), JDK 7)
||Configuration||RSS(KB)||
|standalone.xml| 182,652 |
|standalone-ha.xml | 211,672 |
|standalone-full.xml | 217,636 |
|standalone-full-ha.xml | 289,524 |
|domain:||
| Server-one: | 227,220 |
| Server-two: | 234,944 |
| PC: | 37,584 |
| HC: | 138,428 |
Wildfly 10: (default Metasize == 21M)
||Configuration||RSS(KB)||
|standalone.xml | 293,576 |
|standalone-ha.xml | 303,344 |
|standalone-full.xml | 388,660 |
|standalone-full-ha.xml | 478,576 |
|domain: ||
| Server-one: | 379,076 |
| Server-two: | 377,516 |
| PC: | 55,000 |
| HC: | 272,120 |
Wildfly 10: (Metasize == 64M)
|standalone.xml | 290,236 |
|standalone-ha.xml | 306,032 |
|standalone-full.xml | 396,596 |
|standalone-full-ha.xml | 501,576 |
|domain:|
| Server-one: |
| Server-two: |
| PC: |
| HC: |
Wildfly 10: (Metasize == 96M)
||Configuration||RSS(KB)||
|standalone.xml |317,996 |
|standalone-ha.xml | 306,516 |
|standalone-full.xml |416,008 |
|standalone-full-ha.xml |460,952 |
|domain: |
| Server-one: | 380,816 |
| Server-two: | 374,300 |
| PC: | 55,308 |
| HC: | 273,220 |
Additional measurements. Using just Wildfly-core, the following RSS sizes are measured
for the indicated Metasize:
Wildfly-10 Core master
||Metasize || RSS(KB) ||
|21m | 117,760|
|64m | 120,772|
|96m | 131,104|
Based on the memory impact of defaulting to 96M (approx 30mb initially over the default
value of 21mb), it would seem to make sense to use this as a default value.
This value allows maintaining boot times without incurring a full GC due to Metasize and
provides enough initial Metasize to both start the application server and perhaps deploy
an application without incurring any performance penalty.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)