Sebastian,

What Galder, Sanne and others are saying is that in OpenShift on prem, there is 
no or at least a higher limit in the minimal container memory you can ask. And 
in these deployment, Infinispan should target the multi GB, not 512 MB.

Of course, *if* you ask for a guaranteed 512MB, then it would be silly to try 
and consume more.

> On 25 Sep 2017, at 12:30, Sebastian Laskawiec <slask...@redhat.com> wrote:
> 
> 
> 
> On Mon, Sep 25, 2017 at 11:54 AM Galder Zamarreño <gal...@redhat.com 
> <mailto:gal...@redhat.com>> wrote:
> I don't understand your reply here... are you talking about Infinispan 
> instances deployed on OpenShift Online? Or on premise?
> 
> TBH - I think there is no difference, so I'm thinking about both.
>  
> I can understand having some limits for OpenShift Online, but these templates 
> should also be applicable on premise, in which case I should be able to 
> easily define how much memory I want for the data grid, and the rest of the 
> parameters would be worked out by OpenShift/Kubernetes?
> 
> I have written a couple of emails about this on internal mailing list. Let me 
> just point of some bits here:
> We need to set either Xmx or MaxRAM to tell the JVM how much memory it can 
> allocate. As you probably know JDK8 is not CGroups aware by default (there 
> are some experimental options but they set MaxRAM parameter equal to CGroups 
> limit; this translates to Xmx=MaxRAM(CGroups limit) / 4. I guess allocating 
> Xmx=(CGroups limit)/4 is too high for us, so we need to set it explicitly.
> in our Docker image we set Xmx = 50% of CGroups limit. This is better than 
> settings above but there is some risk in certain scenarios.
> As I mentioned in my previous email, in the templates we are setting Requests 
> (not Limits!!!). So you will probably get more memory than specified in the 
> template but it depends on the node you're running on. The key point is that 
> you won't get less than those 512 MB.
> You can always edit your DeploymentConfig (after creating your application 
> from template) and adjust Limits (or even requests).
> For simple scenarios and bigger containers (like 4 GB) we can go more than 
> 50% (see internal mailing list for details).
> And as I said before - if you guys think we should do it differently, I'm 
> open for suggestions. I think it's quite standard way of configuring this 
> sort of stuff.
> 
> To demand on premise users to go and change their template just to adjust the 
> memory settings seems to me goes against all the usability improvements we're 
> trying to achieve.
> 
> At some point you need to define how much memory you will need. Whether it's 
> in the template, your DeploymentConfiguration (created from template using oc 
> process), Quota - it doesn't matter. You must write it somewhere - don't you? 
> With current approach, the best way to do it is in Deployment Configuration 
> Requests. This sets CGroups limit, and based on that, Infinispan bootstrap 
> scripts will calculate Xmx. 
>  
> 
> Cheers,
> 
> > On 22 Sep 2017, at 14:49, Sebastian Laskawiec <slask...@redhat.com 
> > <mailto:slask...@redhat.com>> wrote:
> >
> > It's very tricky...
> >
> > Memory is adjusted automatically to the container size [1] (of course you 
> > may override it by supplying Xmx or "-n" as parameters [2]). The safe limit 
> > is roughly Xmx=Xms=50% of container capacity (unless you do the off-heap, 
> > that you can squeeze Infinispan much, much more).
> >
> > Then there are Limits, Requests and QoS in Kubernetes [3][4]. We are in 
> > bustable memory category so if there is additional memory in the node, 
> > we'll get it. But if not, we won't go below 512 MB (and 500 mCPU).
> >
> > Thanks,
> > Sebastian
> >
> > [1] 
> > https://github.com/jboss-dockerfiles/infinispan/tree/master/server#adjusting-memory
> >  
> > <https://github.com/jboss-dockerfiles/infinispan/tree/master/server#adjusting-memory>
> > [2] 
> > https://github.com/jboss-dockerfiles/infinispan/blob/master/server/docker-entrypoint.sh#L303-L308
> >  
> > <https://github.com/jboss-dockerfiles/infinispan/blob/master/server/docker-entrypoint.sh#L303-L308>
> > [3] https://www.youtube.com/watch?v=nWGkvrIPqJ4 
> > <https://www.youtube.com/watch?v=nWGkvrIPqJ4>
> > [4] 
> > https://docs.openshift.com/enterprise/3.2/dev_guide/compute_resources.html 
> > <https://docs.openshift.com/enterprise/3.2/dev_guide/compute_resources.html>
> >
> > On Fri, Sep 22, 2017 at 2:33 PM Galder Zamarreño <gal...@redhat.com 
> > <mailto:gal...@redhat.com>> wrote:
> > Hi Sebastian,
> >
> > How do you change memory settings for Infinispan started via service 
> > catalog?
> >
> > The memory settings seem defined in [1], but this is not one of the 
> > parameters supported.
> >
> > I guess we want this as parameter?
> >
> > Cheers,
> >
> > [1] 
> > https://github.com/infinispan/infinispan-openshift-templates/blob/master/templates/infinispan-ephemeral.json#L308
> >  
> > <https://github.com/infinispan/infinispan-openshift-templates/blob/master/templates/infinispan-ephemeral.json#L308>
> > --
> > Galder Zamarreño
> > Infinispan, Red Hat
> >
> 
> --
> Galder Zamarreño
> Infinispan, Red Hat
> 
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev

_______________________________________________
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Reply via email to