Just to clarify, What the user should be able to set is memory request according to the definition here https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/
and we chose a memory limit with reasonable margin (20%?) but aim at never going over memory request And to achieve that, we will build estimates based on the test work Sebastian has been doing around Xmx / memory request ratio. Each usage type will have to have revised estimates. These will be “hardcoded” for a given memory request size. At least for a given usage and version of Infinispan. I like Sanne’s idea of a calculator where you input your data size needs and it offers pod number / pod size options. But we will have to offer that in the doc or something. Not as part of the service catalog UI in its current incarnation. Emmanuel > On 28 Sep 2017, at 15:13, Emmanuel Bernard <emman...@hibernate.org> wrote: > > I am personally content if you provide the total amount of memory for Pod and > you as OSB designer decide of the -Xms/Xmx for the services. Unlike what > Sanne said I think, Amazon and the like they don’t give you x GB of cache. > They give you an instance of Redis or Memcached within a VM that has x amount > of GB allocated. What you can stuck in is left as an exercise for the reader. > > Not ideal but I think they went for the practical in this case. > > For the pain JDG, then more options is fine. > >> On 28 Sep 2017, at 12:00, Sebastian Laskawiec <slask...@redhat.com >> <mailto:slask...@redhat.com>> wrote: >> >> So how about exposing two parameters - Xms/Xmx and Total amount of memory >> for Pod (Request = Limit in that case). Would it work for you? >> >> On Thu, Sep 28, 2017 at 8:38 AM Emmanuel Bernard <emman...@hibernate.org >> <mailto:emman...@hibernate.org>> wrote: >> 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 >>> <mailto: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 <mailto:infinispan-dev@lists.jboss.org> >>> https://lists.jboss.org/mailman/listinfo/infinispan-dev >>> <https://lists.jboss.org/mailman/listinfo/infinispan-dev>_______________________________________________ >> infinispan-dev mailing list >> infinispan-dev@lists.jboss.org <mailto:infinispan-dev@lists.jboss.org> >> https://lists.jboss.org/mailman/listinfo/infinispan-dev >> <https://lists.jboss.org/mailman/listinfo/infinispan-dev>_______________________________________________ >> infinispan-dev mailing list >> infinispan-dev@lists.jboss.org <mailto: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
_______________________________________________ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev