Thanks Rainer for explanation. >From your experience with GC would you say adding those 2 options is a good idea ? -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled
If not then let's remove it, otherwise +1 for your proposition of commented block for CMS. On Sat, Jul 27, 2013 at 8:17 PM, Rainer Jung <[email protected]>wrote: > On 26.07.2013 22:06, [email protected] wrote: > > Author: pmouawad > > Date: Fri Jul 26 20:06:10 2013 > > New Revision: 1507418 > > > > URL: http://svn.apache.org/r1507418 > > Log: > > Add a GC option for perm cleanup > > Add explanation on NEW zone > > > > Modified: > > jmeter/trunk/bin/jmeter > > > > Modified: jmeter/trunk/bin/jmeter > > URL: > http://svn.apache.org/viewvc/jmeter/trunk/bin/jmeter?rev=1507418&r1=1507417&r2=1507418&view=diff > > > ============================================================================== > > --- jmeter/trunk/bin/jmeter (original) > > +++ jmeter/trunk/bin/jmeter Fri Jul 26 20:06:10 2013 > > @@ -45,7 +45,7 @@ HEAP="-Xms512m -Xmx512m" > > > > # There's an awful lot of per-sample objects allocated during test run, > so we > > # need a large eden to avoid too frequent scavenges -- you'll need to > tune this > > -# down proportionally if you reduce the HEAP values above: > > +# down proportionally if you modify the HEAP values above: > > NEW="-XX:NewSize=128m -XX:MaxNewSize=128m" > > > > # This ratio and target have been proven OK in tests with a specially > high > > @@ -75,7 +75,7 @@ TENURING="-XX:MaxTenuringThreshold=2" > > RMIGC="-Dsun.rmi.dgc.client.gcInterval=600000 > -Dsun.rmi.dgc.server.gcInterval=600000" > > > > # Increase MaxPermSize if you use a lot of Javascript in your Test Plan > : > > -PERM="-XX:PermSize=64m -XX:MaxPermSize=128m" > > +PERM="-XX:PermSize=64m -XX:MaxPermSize=128m > -XX:+CMSClassUnloadingEnabled" > Note that the switch wouldn't do anything by default, because it only is > effective is the user switches to CMS garbage collection > (-XX:+UseConcMarkSweepGC). If CMS is not used, class unloading is > default (boolean switch ClassUnloading). Fortunately the > CMSClassUnloadingEnabled switch is simply ignored if CMS is not used. > > OTOH it also has a side effect: it will let the CMS check how much > memory in the perm gen is free to decide whether it should run. By > default it will run when perm is 92% filled. This can be changed with > the CMSInitiatingPermOccupancyFraction switch. It can not only run when > the perm gen is full, like he traditional compactifying GC, because it > is expected to run concurrently with the application, so there must be > some free space left to let the app run successfully until the CMS has > freed up garbage. > > So as long as JMeter stays typically below 92% that's fine, but if it > frequently goes to 92%, e.g. because it always needs 91% and quickly > adds temporary classes which make up the last percent, that would result > in frequent CMS runs. This is something to keep in mind. > > Should we provide a commented block of switch prepared for the CMS use? > > Regards, > > Rainer > -- Cordialement. Philippe Mouawad.
