[jboss-jira] [JBoss JIRA] (WFCORE-1319) Suggested defaults for Metasize and Java 8

Andrig Miller (JIRA) issues at jboss.org
Fri Jan 22 16:33:00 EST 2016


    [ https://issues.jboss.org/browse/WFCORE-1319?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13152720#comment-13152720 ] 

Andrig Miller commented on WFCORE-1319:
---------------------------------------

Yes, I think it should be the same in domain mode.  I forgot to say that in my comment earlier.

> Suggested defaults for Metasize and Java 8
> ------------------------------------------
>
>                 Key: WFCORE-1319
>                 URL: https://issues.jboss.org/browse/WFCORE-1319
>             Project: WildFly Core
>          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 measured boot time difference was observed (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|
> There is little boot time impact on the change:
> Wildfly-10 Core master
> ||Metasize ||  Boot time (MS) ||
> |21m     | 2127 |
> |64m     | 2066 |
> |96m     | 2099 |
> 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.
> An additional note: host*.xml has JVM params set to MetaspaceSize=256m, which is probably too large an initial value.



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the jboss-jira mailing list