RE: Re: RE: Re: Re: jvmargs, a sanity checker for JVM options

Yes, then let the object take care of figuring out the exact memory to allocate.


From: Bryan Berry
Sent: Thu, Mar 21, 2013 06:56 AM
To: chef@lists.opscode.com
Subject: [chef] Re: RE: Re: Re: [ANN] jvmargs, a sanity checker for JVM options

Dang,

on rereading your message, i think you want something like this

JVMArgs::Args.new({:heap_size => "80%"})

correct?

On Thu, Mar 21, 2013 at 2:44 PM, Nguyen, Dang Dang.Nguyen@disney.com wrote:

In some cases, an entire machine is dedicated for the jvm, but some memory
should bee reserved for the operating system. So how about about supporting
a percentage of total memory?


From: Bryan Berry
Sent: Thu, Mar 21, 2013 06:31 AM
To: chef@lists.opscode.com
Subject: [chef] Re: Re: [ANN] jvmargs, a sanity checker for JVM options

min and max should be the same because there is no benefit to having a
lower min according to everything I have read. It can slow down your
application startup however.

it will not support parsing a space delimited string, only the options
specifically for the JVM, for example

"java -Djava.io.tmpdir=/tmp/foo -server -Xmx256m -Xint
-XX:MaxPermSize=512M -classpath /tmp/foo.jar:/tmp/baz.jar
org.apache.catalina.Bootstrap start "

jvmargs doesn't add the java binary to the beginning nor the
"org.apache.catalina.Bootstrap start"

I do want to handle the classpath but i have not figured out a clean
way to handle that yet :frowning:

i would very much appreciate feedback and testing. this afternoon i
hope to add support for arbitrary rules like the following

"if Max heap is greater than available RAM, raise an error"
"if Max heap is changed, also set Min heap to same value"

On Thu, Mar 21, 2013 at 2:18 PM, Jesse Campbell hikeit@gmail.com wrote:

hey, been looking for something like this to come along, looks like a very
clean, sane way to handle it :smiley:

in your todo you have ensure min and max heap should be the same. why is
this?

i didn't dig to far into the code, but will it support parsing a space
delimited string, as the current tomcat and tomcat6 cookbooks expect, or
will the cookbook be expected to handle that?

thanks!

On Thu, Mar 21, 2013 at 4:53 AM, Bryan Berry bryan.berry@gmail.com
wrote:

hey folks,

i have written a little gem to parse JVM options and would love some
feedback on it. Managing JVM options in a cookbooks is a total PITA
and I hope this makes it easier. This is less than alpha quality, i am
posting it here to get some feedback, not to notify others of a
production-ready tool. I foresee it being used in Java-related
cookbooks to provide a set of application-specific defaults and then
make it easy to override or add to them in recipe code.

GitHub - bryanwb/jvmargs: sane parser of java command-line arguments

This library parses JVM options so that any given option is only
stored once. It does this by breaking each option into one of the
three option categories:

  1. standard, ex: -server, -enablesystemassertions
  2. nonstandard, ex: -Xmx128M, -Xint
  3. unstable, ex: -XX:-DisableExplicitGC, -XX:AltStack=128M
  4. directive, ex: -Dcom.sun.management.jmxremote

JVMArgs will ensure that only one value is stored for any given
option. Here is a quick example

args = JVMArgs::Args.new("-XX:-DisableExplicitGC", "-Xmx256M")

"-XX:-DisableExplicitGC" is now stored in args

args.add("-XX:+DisableExplicitGC")
args.add("-Xmx2G")

the settings are now "-XX:+DisableExplicitGC" and "-Xmx2G"