- From: Adam Jacob <
>
- To: "
" <
>
- Subject: [chef] RE: Re: Re: Re: Re: [ANN] jvmargs, a sanity checker for JVM options
- Date: Thu, 21 Mar 2013 18:17:22 +0000
- Accept-language: en-US
Even if it is true - no need to force it. Have a happy path that does what
you say, and a "no really" path. :)
Adam
-----Original Message-----
From: Bryan Berry
[mailto:
Sent: Thursday, March 21, 2013 6:49 AM
To:
Subject: [chef] Re: Re: Re: Re: [ANN] jvmargs, a sanity checker for JVM
options
well I can definitely be horribly mistaken on the matching Xmx and Xms
:) , and am willing to change the code
iirc I read the matching Xmx and Xms in the "Java Performance" book but I
could be mistaken
On Thu, Mar 21, 2013 at 2:44 PM, Jesse Campbell
<
>
wrote:
>
I've read plenty that suggests that depending on the situation, having
>
different Xms and Xmx values can be beneficial.
>
>
i've seen things like this:
>
http://java-monitor.com/forum/showthread.php?t=427
>
which suggest that setting them the same has no particularly
>
beneficial effect.
>
>
and I've seen things like this:
>
http://weblogs.java.net/blog/kcpeppe/archive/2011/12/19/setting-xmx-xm
>
s-still-considered-harmful which suggest that the ideal settings are
>
for xms to be your 99% case, and xmx allow for some wiggle room
>
>
in fact, i haven't seen any really good recent analyses that support
>
setting them the same, just lots of rhetoric
>
>
-jesse
>
>
>
On Thu, Mar 21, 2013 at 9:31 AM, Bryan Berry
>
<
>
>
wrote:
>
>
>
> 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 :(
>
>
>
> 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
>
> <
>
>
> wrote:
>
> > hey, been looking for something like this to come along, looks like
>
> > a very clean, sane way to handle it :D
>
> >
>
> > 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
>
> > <
>
>
> > 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.
>
> >>
>
> >> https://github.com/bryanwb/jvmargs
>
> >>
>
> >> 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"
>
> >
>
> >
>
>
Archive powered by MHonArc 2.6.16.