> On March 17, 2016, 12:37 p.m., Robert Levas wrote: > > ambari-server/src/main/python/ambari_server_main.py, line 89 > > <https://reviews.apache.org/r/44958/diff/1/?file=1302356#file1302356line89> > > > > I am not familiar with these options, but it apears like no one really > > knows what they do. See https://dzone.com/articles/busting-permgen-myths > > for an example. > > > > Do we really think that this is necessary? Do we know how this will > > affect performance? > > Daniel Gergely wrote: > These options are for JVM, it can be checked in the jvm implementors > webpage. For example IBM does not use permgen space at all, but oracle does. > The first option has not effect from java 7, but it was useful in java 6 and > before, so I removed that one. > However -XX:+CMSClassUnloadingEnabled is useful. When classes are loaded > (statically or dynamically) they are stored in permgen space and remains > there forever (well, almost...). Since we use CMS (-XX:+UseConcMarkSweepGC > flag is already defined), we can allow GC to unload unused classes. As a > result it can increase the free space in permGen. In normal case when permGen > space is full, garbage collector initiates a STW (stop-the-world) action to > clean permgen space. > Short description here: > https://blogs.oracle.com/poonam/entry/about_g1_garbage_collector_permanent > Oracle tutorial here: > http://www.oracle.com/technetwork/tutorials/tutorials-1876574.html > > From Java 8 as I know there is no permGen space, so this issue relates > only to java 7. > > So I removed -XX:+CMSPermGenSweepingEnabled, but I kept > -XX:+CMSClassUnloadingEnabled. Performance wise you should not experience any > difference.
Thanks for the clarification. - Robert ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/44958/#review124042 ----------------------------------------------------------- On March 18, 2016, 4:39 a.m., Daniel Gergely wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/44958/ > ----------------------------------------------------------- > > (Updated March 18, 2016, 4:39 a.m.) > > > Review request for Ambari, Laszlo Puskas, Oliver Szabo, Robert Levas, Sandor > Magyari, and Sebastian Toader. > > > Bugs: AMBARI-15465 > https://issues.apache.org/jira/browse/AMBARI-15465 > > > Repository: ambari > > > Description > ------- > > Increased permGen size to 128m, also added **-XX:+CMSPermGenSweepingEnabled** > and **-XX:+CMSClassUnloadingEnabled** to allow jvm to keep permGen space > clean. > > > Diffs > ----- > > ambari-server/conf/unix/ambari-env.sh e9fdcdd > ambari-server/src/main/python/ambari_server_main.py 00e084b > > Diff: https://reviews.apache.org/r/44958/diff/ > > > Testing > ------- > > Manual testing: > [root@c6401 sbin]# ps -ef | grep ambari-server > root 20769 1 27 14:47 pts/0 00:00:24 > //usr/jdk64/jdk1.8.0_60/bin/java -server -XX:NewRatio=3 > -XX:+UseConcMarkSweepGC -XX:-UseGCOverheadLimit > -XX:CMSInitiatingOccupancyFraction=60 **-XX:+CMSPermGenSweepingEnabled > -XX:+CMSClassUnloadingEnabled** -Dsun.zip.disableMemoryMapping=true -Xms512m > -Xmx2048m **-XX:MaxPermSize=128m** > -Djava.security.auth.login.config=//etc/ambari-server/conf/krb5JAASLogin.conf > -Djava.security.krb5.conf=/etc/krb5.conf > -Djavax.security.auth.useSubjectCredsOnly=false -Xms512m -Xmx2048m > -Djava.security.auth.login.config=//etc/ambari-server/conf/krb5JAASLogin.conf > -Djava.security.krb5.conf=/etc/krb5.conf > -Djavax.security.auth.useSubjectCredsOnly=false -cp > //etc/ambari-server/conf:/usr/lib/ambari-server/*:/usr/share/java/postgresql-jdbc.jar > org.apache.ambari.server.controller.AmbariServer > > > Thanks, > > Daniel Gergely > >