[jboss-jira] [JBoss JIRA] (WFLY-6046) Suggested defaults for Metasize and Java 8
Brian Stansberry (JIRA)
issues at jboss.org
Thu Jan 21 16:26:00 EST 2016
[ https://issues.jboss.org/browse/WFLY-6046?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13152145#comment-13152145 ]
Brian Stansberry commented on WFLY-6046:
----------------------------------------
Thanks for digging into this, Ken. I agree 96M seems like a reasonable tradeoff between a higher than absolutely minimum memory budget and speeding boot by avoiding full gcs.
A higher value than 96M *might* make sense for some users, with some big apps or something, but this setting is coming from WildFly Core, not WildFly, and will thus be the default for any dist based on core (unless that dist overrides standalone.conf) so I like 96M. The added 13M your tests show with WildFly Core only are not too bad, yet the size is big enough that all the WildFly full configs boot without gc.
> 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, which 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)
More information about the jboss-jira
mailing list