Re: why does cf app show always 0.0% CPU
|
|
Re: Announcing Experimental support for Asynchronous Service Operations
Thanks Guillaume for the feedback. I've now gathered enough feedback to bring async operations out of the experimental phase and bump the service broker api version. I've added stories to the CAPI backlog [1] and we'll get the diagram updated too. Localized error messages is not something we are looking to work on right now. I believe there was a previous attempt to have CC errors localized that ended up not being merged due to issues with the way v2 constructed error messages and not being backwards compatible. As these descriptions passed from brokers via the last_operation end point don't go that route, there's perhaps a path forward there. Happy to discuss if it's work that anyone is interested in taking on via PR. -Dieu CF CAPI PM [1] https://www.pivotaltracker.com/epic/show/2058352
toggle quoted messageShow quoted text
On Wed, Sep 2, 2015 at 5:00 AM, Guillaume Berche <bercheg(a)gmail.com> wrote: Thanks Dieu for your response.
We have successfully implemented an async service broker for out internal dbaas [1], [2] which db farms provisionning sometimes takes longer than 30s.
Concerning improvement suggestions on the documentation, I could only spot an inconsistency on the sequence diagram, where the last operation description is mismatching between broker response (1/3 nodes") and CC api response ("40% complete") whereas the 'description' is a string which should be returned as is. Hard to propose a PR on that since the source file for this diagram does not seem available under docs-services [4]. BTW, It would be great if bookbinder would support rendering diagrams from a text format such as plantuml [5], or rely on plantuml public service [6] for such rendering.
Wouldn't is make sense to exit the experimental status of the async api, even if it's not feature complete ? i.e. considering the api is stable enough and won't change in an incompatible maneer soon, thereby enabling clients such as cf-java-client to rely on them.
One other potential improvement I see to the API would be to support localized user-facing operation status description. Having the CLI being I18Ned but brokers enable to return user facing messages in the user language seems limiting. Maybe it could be the case of having the CLI add a usual 'Accept-Language: zh_Hans" matching the current CLI locale, and the CC propagating this header in the last_operation broker endpoint [7] so that they can return the status message in the smae language when translations are available.
Thanks,
Guillaume.
[1] https://github.com/Orange-OpenSource/elpaaso-brokers/blob/master/cf-service-broker-dbaas/src/main/java/com/orange/clara/cloud/cf/servicebroker/dbaas/service/DbaasServiceInstanceService.java#L60 [2] https://github.com/Orange-OpenSource/elpaaso-brokers/blob/a3f150fc7d3bb889875aac202496a4f63efc3595/cf-service-broker-dbaas/src/main/java/com/orange/clara/cloud/cf/servicebroker/dbaas/service/DbaasServiceInstanceService.java#L67-L73 [3] http://docs.cloudfoundry.org/services/images/async-service-broker-flow.png [4] https://github.com/cloudfoundry/docs-services/blob/master/images/async-service-broker-flow.png [5] http://plantuml.com/sequence.html [6] http://plantuml.com/plantuml/ [7] http://docs.cloudfoundry.org/services/asynchronous-operations.html#polling
On Tue, Sep 1, 2015 at 5:50 PM, Dieu Cao <dcao(a)pivotal.io> wrote:
Hi Guillaume,
We are looking for a couple more pieces of feedback. All feedback I've received so far has been positive.
There was one report recently from Robert Moss about being able to provide the dashboard_url asynchronously instead of part of the original response [1]. I'm also considering whether that needs to be addressed prior to marking the feature complete, or if it should be a separate/additive change to the service broker api.
If you've had success with the current implementation, I would be greatly interested in hearing that.
-Dieu
[1] https://lists.cloudfoundry.org/archives/list/cf-dev(a)lists.cloudfoundry.org/thread/LJ26K22WG7OJCAIXWYPTJQKELVAUBUZC/
On Tue, Sep 1, 2015 at 5:20 AM, Guillaume Berche <bercheg(a)gmail.com> wrote:
Hi,
I'm wondering whether the experimental async service broker api is now ready to become official, or whether the CAPI team and PMs are still lacking feedback or have some outstanding issues that need to be addressed before calling the spec official? I was not able to spot any async-related stories in the CAPI backlog [1]
We have a pending PR in cf-java-client [2] which is waiting for the async broker spec to be made official.
Thanks in advance,
Guillaume.
[1] https://www.pivotaltracker.com/n/projects/966314 [2] https://github.com/cloudfoundry/cf-java-client/pull/282#issuecomment-115874984
On Fri, Jun 5, 2015 at 9:21 AM, James Bayer <jbayer(a)pivotal.io> wrote:
i'm very happy to see this work delivered as the 60 second limit has come up so often as a pain point in the past. great job to all who contributed!
On Wed, Jun 3, 2015 at 5:05 PM, Onsi Fakhouri <ofakhouri(a)pivotal.io> wrote:
Well done Services API! This is an awesome milestone!
On Wed, Jun 3, 2015 at 5:04 PM, Chip Childers < cchilders(a)cloudfoundry.org> wrote:
Awesome news! Long time coming, and it opens up a whole world of additional capabilities for users.
Nice work everyone!
On Jun 4, 2015, at 9:00 AM, Shannon Coen <scoen(a)pivotal.io> wrote:
On behalf of the Services API team, including Dojo participants from IBM and SAP, I'm pleased to announce experimental availability and published documentation for this much-anticipated feature.
As of cf-release v208 and CLI v6.11.1, Cloud Foundry now supports an enhanced service broker integration in support of long-running provisioning, update, and delete operations. This significantly broadens the supported use cases for Cloud Foundry Marketplace Services, and I can't wait to hear what creative things the ecosystem does with it. Provision VMs, orchestrate clusters, install software, move data... yes, your broker can even open support tickets to have those things done manually!
This feature is currently considered experimental, as we'd like you all to review our docs, try out the feature, and give us feedback. We very interested to hear about any confusion in the docs or the UX, and any sticky issues you encounter in implementation. Our goal is for our docs enable a painless, intuitive (can we hope for joyful?) implementation experience.
We have not bumped the broker API yet for this feature. You'll notice that our documentation for the feature is separate from the stable API docs at this point. Once we're confident in the design (we're relying on your feedback!), we'll bump the broker API version, move the docs for asynchronous operations into the stable docs, AND implement support for asynchronous bind/create-key and unbind/delete-key.
Documentation: - http://docs.cloudfoundry.org/services/asynchronous-operations.html - http://docs.cloudfoundry.org/services/api.html Example broker for AWS (contributed by IBM): - http://docs.cloudfoundry.org/services/examples.html - https://github.com/cloudfoundry-samples/go_service_broker Demo of the feature presented at CF Summit 2015: - https://youtu.be/Ij5KSKrAq9Q
tl;dr
Cloud Foundry expects broker responses within 60 seconds. Now a broker can return an immediate response indicating that a provision, update, or delete operation is in progress. Cloud Foundry then returns a similar response to the client, and begins polling the broker for the status of the operation. Users, via API clients, can discover the status of the operation ("in progress", "succeeded", or "failed"), and brokers can provide user-facing messages in response to each poll which are exposed to users (e.g. "VMs provisioned, installing software, 30% complete").
Thank you,
Shannon Coen Product Manager, Cloud Foundry Pivotal, Inc.
_______________________________________________ cf-dev mailing list cf-dev(a)lists.cloudfoundry.org https://lists.cloudfoundry.org/mailman/listinfo/cf-dev
_______________________________________________ cf-dev mailing list cf-dev(a)lists.cloudfoundry.org https://lists.cloudfoundry.org/mailman/listinfo/cf-dev
_______________________________________________ cf-dev mailing list cf-dev(a)lists.cloudfoundry.org https://lists.cloudfoundry.org/mailman/listinfo/cf-dev
-- Thank you,
James Bayer
_______________________________________________ cf-dev mailing list cf-dev(a)lists.cloudfoundry.org https://lists.cloudfoundry.org/mailman/listinfo/cf-dev
|
|
why does cf app show always 0.0% CPU
Lukas Lehner <weblehner@...>
|
|
James, Onsi, we’re also looking forward to this, for we have some peculiar infrastructure requirements.
Carlo
toggle quoted messageShow quoted text
On Aug 29, 2015, at 2:51 AM, James Bayer <jbayer(a)pivotal.io> wrote:
we've been using a new term for the same concept we've previously labeled placement pools called "isolation groups".
onsi has been working on some documentation for what this may look like and the requirements, but the work has not started. i believe onsi will share something soon.
so today, the way to accomplish this need to place apps on specific infrastructure is to use separate CF installations.
On Fri, Aug 28, 2015 at 8:50 AM, Matt Cholick <cholick(a)gmail.com <mailto:cholick(a)gmail.com>> wrote: More than a year ago, there was some discussion and a proposal around adding placement pools so cloud foundry admins could better target how applications were placed on runners: https://docs.google.com/document/d/1GNjQwGBh0BvfAYpX0LTUYn6h4oLz7v4P9pNy0xHZtMw/edit# <https://docs.google.com/document/d/1GNjQwGBh0BvfAYpX0LTUYn6h4oLz7v4P9pNy0xHZtMw/edit#>
Did this work gain traction? I've looked through the release notes as well as MEGA and CF Diego's public trackers and don't see stories for this work either done or planned, though it could also be that I'm just not finding it.
My goal is to place canary apps in specifically Z1 or Z2, as well as place some internally used apps that, for networking reasons, should be in one zone or the other.
-Matt Cholick
-- Thank you,
James Bayer
|
|
Need Help. How to register custom routes to gorouter
Hi cf devs, I want to register some custom routes to the gorouter component of cloud foundry. What I understood was that this could be achieved by nats-pub command but when I try this command on the gorouter VM it was not recognized. Can anyone help me how to register custom routes to gorouter. https://docs.cloudfoundry.org/concepts/architecture/router.htmlWhat worked: curl -vvv " http://gorouterusername:gorouterpassword(a)gorouter_ip:gorouter_port/routes" This gives me the current routes that are registered. What did not work: nats-pub 'router.register' 'some custom route' OR Is there a rest call to register the custom routes? It would be of great help if someone can guide me on how to achieve the similar. Thanks.
|
|
Andres Montoya <andresmontoyat@...>
Sent from my iPhone
toggle quoted messageShow quoted text
On Sep 3, 2015, at 4:57 PM, Supraja Yasoda <ykmsupraja(a)gmail.com> wrote:
-- Regards, Supraja.
|
|
On Sep 3, 2015, at 10:00 AM, Ranchuan Ran <chuanran0723(a)gmail.com> wrote:
|
|
Re: Request timeout in CloudFoundry
Hi,
I'm experiencing this same issue.
I have a NodeJS app, using the nodejs buildpack. A request taking approximately 80 secs long gets timed out (502 response). We're using the default CF ELBs (gorouter and ha_proxy).
toggle quoted messageShow quoted text
On Tue, Aug 25, 2015 at 10:57 PM, CF Runtime <cfruntime(a)gmail.com> wrote: Hi,
We think this message was dropped and so we are posting it again.
How long of a timeout are you seeing? The gorouter and ha_proxy have a default timeout of 15 minutes. If you are using an ELB or some other load balancer they may have their own timeout set. I'm not sure if any of the app servers installed by buildpacks have a build in timeout or not, what type of app is it?
Joseph and Dan OSS Release Integration Team
On Mon, Aug 17, 2015 at 2:18 PM, Flávio Henrique Schuindt da Silva < flavio.schuindt(a)gmail.com> wrote:
Hi guys,
How can I increase the request timeout in CF? I would like to give more time to my app to send a response to the requests before getting a timeout. Should I increase it in the buildpack? If yes, where should I change it on java buildpack?
Thanks in advance!
|
|
Hey Daniel, I'll let the documentation team know about this issue. Joaquin, thanks! I did not know that. Best, Amit, CF Release Integration PM On Thu, Sep 3, 2015 at 12:30 AM, Daniel Jones < daniel.jones(a)engineerbetter.com> wrote: Thanks Joaquin!
I found out the long way that just setting the region will do. Sadly last time I used a light stemcell non-US-east regions weren't supported. Given that the documentation suggested that there was still a separate process, I wasted some time with a full-fat stemcell that didn't work.
Bit of a shame as I was trying to demonstrate how easy Cloud Foundry was to install on AWS to a client!
Does anyone know who owns the documentation or how to update it?
On Wed, Sep 2, 2015 at 9:17 PM, Joaquin Zalazar < joaquin.zalazar(a)altoros.com> wrote:
Hi Daniel!
What I've done while testing is to set the variable BOSH_AWS_REGION to the region I needed.
export BOSH_AWS_REGION=<your region here>
Regards!!
Joaquin Zalazar
Altoros
On Wed, Sep 2, 2015 at 9:43 AM, Daniel Jones < daniel.jones(a)engineerbetter.com> wrote:
Hi all,
The CF docs for deploying CF to an AWS VPC <https://docs.cloudfoundry.org/deploying/ec2/bootstrap-aws-vpc.html> have a broken link to a Gist of Dan Highham's, that presumably talks about deploying to regions other than us-east-1.
Does anyone know where the instructions for non-US regions are now?
Regards,
Daniel Jones EngineerBetter.com
--
*Joaquin Zalazar* *ALTOROS* — Cloud Foundry deployment, training and integration www.altoros.com
-- Regards,
Daniel Jones EngineerBetter.com
|
|
Re: stdout.log and stderr.log not show in CF197 with loggregator enabled
the only option here is to route the log output to something like graylog or logstash
and to my knowledge what i understood from release 215 you can set a longer retention log for the --recent log options but i'm not sure
toggle quoted messageShow quoted text
-----Original Message----- From: "Ravindra, Shruthi (GE Healthcare)" <Shruthi.Ravindra(a)ge.com<mailto:%22Ravindra,%20Shruthi%20%28GE%20Healthcare%29%22%20%3cShruthi.Ravindra(a)ge.com%3e>> Reply-to: Discussions about Cloud Foundry projects and the system overall. <cf-dev(a)lists.cloudfoundry.org> To: cf-dev(a)lists.cloudfoundry.org <cf-dev(a)lists.cloudfoundry.org<mailto:%22cf-dev(a)lists.cloudfoundry.org%22%20%3ccf-dev(a)lists.cloudfoundry.org%3e>> Subject: [cf-dev] Re: stdout.log and stderr.log not show in CF197 with loggregator enabled Date: Wed, 2 Sep 2015 13:04:18 +0000 Hi , We are having the same problem where we are not able to see the stdout.log and stderror.log for all the application deployed in the cloud. Could you please let me know how do we access the logs other than cf logs “appname” command which is not giving us the full logs. Thanks, Shruthi ******************************************************** For information, services and offers, please visit our web site: http://www.klm.com. This e-mail and any attachment may contain confidential and privileged material intended for the addressee only. If you are not the addressee, you are notified that no part of the e-mail or any attachment may be disclosed, copied or distributed, and that any other action related to this e-mail or attachment is strictly prohibited, and may be unlawful. If you have received this e-mail by error, please notify the sender immediately by return e-mail, and delete this message. Koninklijke Luchtvaart Maatschappij NV (KLM), its subsidiaries and/or its employees shall not be liable for the incorrect or incomplete transmission of this e-mail or any attachments, nor responsible for any delay in receipt. Koninklijke Luchtvaart Maatschappij N.V. (also known as KLM Royal Dutch Airlines) is registered in Amstelveen, The Netherlands, with registered number 33014286 ********************************************************
|
|
Thanks Joaquin!
I found out the long way that just setting the region will do. Sadly last time I used a light stemcell non-US-east regions weren't supported. Given that the documentation suggested that there was still a separate process, I wasted some time with a full-fat stemcell that didn't work.
Bit of a shame as I was trying to demonstrate how easy Cloud Foundry was to install on AWS to a client!
Does anyone know who owns the documentation or how to update it?
toggle quoted messageShow quoted text
On Wed, Sep 2, 2015 at 9:17 PM, Joaquin Zalazar <joaquin.zalazar(a)altoros.com wrote: Hi Daniel!
What I've done while testing is to set the variable BOSH_AWS_REGION to the region I needed.
export BOSH_AWS_REGION=<your region here>
Regards!!
Joaquin Zalazar
Altoros
On Wed, Sep 2, 2015 at 9:43 AM, Daniel Jones < daniel.jones(a)engineerbetter.com> wrote:
Hi all,
The CF docs for deploying CF to an AWS VPC <https://docs.cloudfoundry.org/deploying/ec2/bootstrap-aws-vpc.html> have a broken link to a Gist of Dan Highham's, that presumably talks about deploying to regions other than us-east-1.
Does anyone know where the instructions for non-US regions are now?
Regards,
Daniel Jones EngineerBetter.com
--
*Joaquin Zalazar* *ALTOROS* — Cloud Foundry deployment, training and integration www.altoros.com
-- Regards,
Daniel Jones EngineerBetter.com
|
|
Re: diego questions: default memory and passing env variables
Rohit Kelapure <rkelapure@...>
toggle quoted messageShow quoted text
On Wed, Sep 2, 2015 at 8:55 PM, Rohit Kelapure <rkelapure(a)pivotal.io> wrote: To add more native memory to the JVM provisioned by the buildpack, you need to change the memory heuristics of the algorithm that generates the JVM -X memory settings. see https://github.com/pivotalservices/citigroup/blob/master/java-buildpack/docs/jre-open_jdk_jre.md
One way to increase the amount of native memory and decrease the memory allocated to the JVM heap is by setting the following env variable
cf set-env spring-music JBP_CONFIG_OPEN_JDK_JRE '[memory_heuristics: {heap: 65, metaspace: 20}, memory_sizes: {metaspace: 256m..}]'
Here we are changing the increasing the allocation of metaspace from its default 64m to 256m in JDK 1.8. This will give more headroom to the native memory. This is an alternative to setting the MEMORY_LIMIT variable.
-cheers, Rohit Kelapure
On Wed, Sep 2, 2015 at 8:47 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
Tweaking the buildpack is less dynamic, and every time you want to make a change you will have to tweak again, create the new buildpack, and upload it to the CC. Moreover, maintaining your own fork of the buildpack adds overhead when you need to consume important changes from the standard buildpack, such as security updates.
On Wed, Sep 2, 2015 at 8:34 PM, Siva Balan <mailsiva(a)gmail.com> wrote:
Thanks for the clarification Sabha and Amit. We are using JavaBP and our usecase is to have additional native memory headroom for the app. One option is to tweak the open_jdk.yml file in the JavaBP to give more native memory and reduce the heap in that process or to set this MEMORY_LIMIT env variable. We are going with setting the MEMORY_LIMIT option.
Regards, Siva
On Wed, Sep 2, 2015 at 5:35 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
Ah, I was mistaken. If you set MEMORY_LIMIT, it will not get overwritten. So if you don't set it, it will be set to the container memory limit. But if you do set it, then the java buildpack can take advantage of it in the way Sabha explained.
On Wed, Sep 2, 2015 at 5:18 PM, Sabha Parameswaran <sabhap(a)pivotal.io> wrote:
The MEMORY_LIMIT is used by the java buildpack to configure the various heap parameters for a java app. This variable value is set to the container size by default by the Cloud controller when you push the app and JBP uses that to arrive at heap during staging.
What you have done is making the buildpack work with a lower memory threshold even though the app itself is allowed a higher limit.
Tweak the MEMORY_LIMIT variable only when you are using JavaBP and want to really have some additional native memory headroom to grow (due to native memory usage or safety concerns) or to limit heap from utilizing the full container memory size.
As Amit mentioned, always use cf scale option to change the memory or instance count for the app container.
-Sabha
On Wed, Sep 2, 2015 at 4:17 PM, Siva Balan <mailsiva(a)gmail.com> wrote:
Thanks for the response. But what I am observing is, by setting MEMORY_LIMIT as an environment variable does take effect when I restage the app and it reduces the memory allocated to the java app(not the container itself) to the amount set in the variable. The app is restarted with the same heap ratio as dictated by the buildpack but assumes the max memory available to it is now 1GB instead of 2GB. The container still had 2GB allocated to it and I understand that will be reduced only if I use the "cf scale" command. Is this the expected behavior?
Thanks Siva
On Wed, Sep 2, 2015 at 3:55 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
This is not a environment variable you can set. To scale down the memory allocated to your instances, do
cf scale <app-name> -m 1024M
This will tell Warden/Garden to allocate that much memory to your containers and kill them if they exceed it. The documentation is saying that the processes running inside the container can learn about the memory limit applied to them via the environment variable MEMORY_LIMIT. If you try to set this variable via set-env, it will get overwritten by the value set by "cf scale". Again, the MEMORY_LIMIT environment variable doesn't do anything, it's just information passed into the container via the process's environment. To actually constrain the memory, use "cf scale" or set it in your manifest file:
https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#memory
On Wed, Sep 2, 2015 at 3:08 PM, Siva Balan <mailsiva(a)gmail.com> wrote:
We are not using Diego and we are on CF version 211. I had my application started with 2GB of memory set in the manifest file. I then ran the following command and restaged the app: cf set-env <app-name> MEMORY_LIMIT 1024m Then when I ran "cf app <app-name>", it was still showing the instance memory of 2GB but the heap size allocated to the application was cut in half and I confirmed this through New Relic app. Also, the first full GC of the app occurred when the memory of the instance was at 1.3GB. So I am not quite sure of the description of the MEMORY_LIMIT env variable as described in http://docs.run.pivotal.io/devguide/deploy-apps/environment-variable.html#memory. I did not see my application restart when the instance memory went over 1GB. Any ideas about this behavior?
Thanks. Siva
On Tue, Sep 1, 2015 at 7:40 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
Responses inline.
On Tue, Sep 1, 2015 at 7:13 PM, Tom Sherrod <tom.sherrod(a)gmail.com
wrote: What is the default memory size of an app deployed in diego? cf apps indicate 1GB.
Yes. This isn't a diego thing, this is a CC thing.
cf set-env doesn't appear to be getting the environment variable information to the running container. Is cf set-env the correct method to use?
You likely need to restage the application for ENV var changes to take effect. Unless I'm mistaken, this too is not diego-specific, and applies to DEA containers as well.
Thanks! Tom
Best, Amit
-- http://www.twitter.com/sivabalans
-- http://www.twitter.com/sivabalans
-- Pivotal CF Architect rkelapure(a)pivotal.io cell: 9197242524
-- Pivotal CF Architect rkelapure(a)pivotal.io cell: 9197242524
|
|
Re: diego questions: default memory and passing env variables
Rohit Kelapure <rkelapure@...>
To add more native memory to the JVM provisioned by the buildpack, you need to change the memory heuristics of the algorithm that generates the JVM -X memory settings. see https://github.com/pivotalservices/citigroup/blob/master/java-buildpack/docs/jre-open_jdk_jre.mdOne way to increase the amount of native memory and decrease the memory allocated to the JVM heap is by setting the following env variable cf set-env spring-music JBP_CONFIG_OPEN_JDK_JRE '[memory_heuristics: {heap: 65, metaspace: 20}, memory_sizes: {metaspace: 256m..}]' Here we are changing the increasing the allocation of metaspace from its default 64m to 256m in JDK 1.8. This will give more headroom to the native memory. This is an alternative to setting the MEMORY_LIMIT variable. -cheers, Rohit Kelapure
toggle quoted messageShow quoted text
On Wed, Sep 2, 2015 at 8:47 PM, Amit Gupta <agupta(a)pivotal.io> wrote: Tweaking the buildpack is less dynamic, and every time you want to make a change you will have to tweak again, create the new buildpack, and upload it to the CC. Moreover, maintaining your own fork of the buildpack adds overhead when you need to consume important changes from the standard buildpack, such as security updates.
On Wed, Sep 2, 2015 at 8:34 PM, Siva Balan <mailsiva(a)gmail.com> wrote:
Thanks for the clarification Sabha and Amit. We are using JavaBP and our usecase is to have additional native memory headroom for the app. One option is to tweak the open_jdk.yml file in the JavaBP to give more native memory and reduce the heap in that process or to set this MEMORY_LIMIT env variable. We are going with setting the MEMORY_LIMIT option.
Regards, Siva
On Wed, Sep 2, 2015 at 5:35 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
Ah, I was mistaken. If you set MEMORY_LIMIT, it will not get overwritten. So if you don't set it, it will be set to the container memory limit. But if you do set it, then the java buildpack can take advantage of it in the way Sabha explained.
On Wed, Sep 2, 2015 at 5:18 PM, Sabha Parameswaran <sabhap(a)pivotal.io> wrote:
The MEMORY_LIMIT is used by the java buildpack to configure the various heap parameters for a java app. This variable value is set to the container size by default by the Cloud controller when you push the app and JBP uses that to arrive at heap during staging.
What you have done is making the buildpack work with a lower memory threshold even though the app itself is allowed a higher limit.
Tweak the MEMORY_LIMIT variable only when you are using JavaBP and want to really have some additional native memory headroom to grow (due to native memory usage or safety concerns) or to limit heap from utilizing the full container memory size.
As Amit mentioned, always use cf scale option to change the memory or instance count for the app container.
-Sabha
On Wed, Sep 2, 2015 at 4:17 PM, Siva Balan <mailsiva(a)gmail.com> wrote:
Thanks for the response. But what I am observing is, by setting MEMORY_LIMIT as an environment variable does take effect when I restage the app and it reduces the memory allocated to the java app(not the container itself) to the amount set in the variable. The app is restarted with the same heap ratio as dictated by the buildpack but assumes the max memory available to it is now 1GB instead of 2GB. The container still had 2GB allocated to it and I understand that will be reduced only if I use the "cf scale" command. Is this the expected behavior?
Thanks Siva
On Wed, Sep 2, 2015 at 3:55 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
This is not a environment variable you can set. To scale down the memory allocated to your instances, do
cf scale <app-name> -m 1024M
This will tell Warden/Garden to allocate that much memory to your containers and kill them if they exceed it. The documentation is saying that the processes running inside the container can learn about the memory limit applied to them via the environment variable MEMORY_LIMIT. If you try to set this variable via set-env, it will get overwritten by the value set by "cf scale". Again, the MEMORY_LIMIT environment variable doesn't do anything, it's just information passed into the container via the process's environment. To actually constrain the memory, use "cf scale" or set it in your manifest file:
https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#memory
On Wed, Sep 2, 2015 at 3:08 PM, Siva Balan <mailsiva(a)gmail.com> wrote:
We are not using Diego and we are on CF version 211. I had my application started with 2GB of memory set in the manifest file. I then ran the following command and restaged the app: cf set-env <app-name> MEMORY_LIMIT 1024m Then when I ran "cf app <app-name>", it was still showing the instance memory of 2GB but the heap size allocated to the application was cut in half and I confirmed this through New Relic app. Also, the first full GC of the app occurred when the memory of the instance was at 1.3GB. So I am not quite sure of the description of the MEMORY_LIMIT env variable as described in http://docs.run.pivotal.io/devguide/deploy-apps/environment-variable.html#memory. I did not see my application restart when the instance memory went over 1GB. Any ideas about this behavior?
Thanks. Siva
On Tue, Sep 1, 2015 at 7:40 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
Responses inline.
On Tue, Sep 1, 2015 at 7:13 PM, Tom Sherrod <tom.sherrod(a)gmail.com> wrote:
What is the default memory size of an app deployed in diego? cf apps indicate 1GB.
Yes. This isn't a diego thing, this is a CC thing.
cf set-env doesn't appear to be getting the environment variable information to the running container. Is cf set-env the correct method to use?
You likely need to restage the application for ENV var changes to take effect. Unless I'm mistaken, this too is not diego-specific, and applies to DEA containers as well.
Thanks! Tom
Best, Amit
-- http://www.twitter.com/sivabalans
-- http://www.twitter.com/sivabalans
-- Pivotal CF Architect rkelapure(a)pivotal.io cell: 9197242524
|
|
Re: diego questions: default memory and passing env variables
Siva Balan <mailsiva@...>
Exactly. That is why we are not pursuing changing the BP option. Thanks for the confirmation.
toggle quoted messageShow quoted text
On Wed, Sep 2, 2015 at 8:47 PM, Amit Gupta <agupta(a)pivotal.io> wrote: Tweaking the buildpack is less dynamic, and every time you want to make a change you will have to tweak again, create the new buildpack, and upload it to the CC. Moreover, maintaining your own fork of the buildpack adds overhead when you need to consume important changes from the standard buildpack, such as security updates.
On Wed, Sep 2, 2015 at 8:34 PM, Siva Balan <mailsiva(a)gmail.com> wrote:
Thanks for the clarification Sabha and Amit. We are using JavaBP and our usecase is to have additional native memory headroom for the app. One option is to tweak the open_jdk.yml file in the JavaBP to give more native memory and reduce the heap in that process or to set this MEMORY_LIMIT env variable. We are going with setting the MEMORY_LIMIT option.
Regards, Siva
On Wed, Sep 2, 2015 at 5:35 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
Ah, I was mistaken. If you set MEMORY_LIMIT, it will not get overwritten. So if you don't set it, it will be set to the container memory limit. But if you do set it, then the java buildpack can take advantage of it in the way Sabha explained.
On Wed, Sep 2, 2015 at 5:18 PM, Sabha Parameswaran <sabhap(a)pivotal.io> wrote:
The MEMORY_LIMIT is used by the java buildpack to configure the various heap parameters for a java app. This variable value is set to the container size by default by the Cloud controller when you push the app and JBP uses that to arrive at heap during staging.
What you have done is making the buildpack work with a lower memory threshold even though the app itself is allowed a higher limit.
Tweak the MEMORY_LIMIT variable only when you are using JavaBP and want to really have some additional native memory headroom to grow (due to native memory usage or safety concerns) or to limit heap from utilizing the full container memory size.
As Amit mentioned, always use cf scale option to change the memory or instance count for the app container.
-Sabha
On Wed, Sep 2, 2015 at 4:17 PM, Siva Balan <mailsiva(a)gmail.com> wrote:
Thanks for the response. But what I am observing is, by setting MEMORY_LIMIT as an environment variable does take effect when I restage the app and it reduces the memory allocated to the java app(not the container itself) to the amount set in the variable. The app is restarted with the same heap ratio as dictated by the buildpack but assumes the max memory available to it is now 1GB instead of 2GB. The container still had 2GB allocated to it and I understand that will be reduced only if I use the "cf scale" command. Is this the expected behavior?
Thanks Siva
On Wed, Sep 2, 2015 at 3:55 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
This is not a environment variable you can set. To scale down the memory allocated to your instances, do
cf scale <app-name> -m 1024M
This will tell Warden/Garden to allocate that much memory to your containers and kill them if they exceed it. The documentation is saying that the processes running inside the container can learn about the memory limit applied to them via the environment variable MEMORY_LIMIT. If you try to set this variable via set-env, it will get overwritten by the value set by "cf scale". Again, the MEMORY_LIMIT environment variable doesn't do anything, it's just information passed into the container via the process's environment. To actually constrain the memory, use "cf scale" or set it in your manifest file:
https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#memory
On Wed, Sep 2, 2015 at 3:08 PM, Siva Balan <mailsiva(a)gmail.com> wrote:
We are not using Diego and we are on CF version 211. I had my application started with 2GB of memory set in the manifest file. I then ran the following command and restaged the app: cf set-env <app-name> MEMORY_LIMIT 1024m Then when I ran "cf app <app-name>", it was still showing the instance memory of 2GB but the heap size allocated to the application was cut in half and I confirmed this through New Relic app. Also, the first full GC of the app occurred when the memory of the instance was at 1.3GB. So I am not quite sure of the description of the MEMORY_LIMIT env variable as described in http://docs.run.pivotal.io/devguide/deploy-apps/environment-variable.html#memory. I did not see my application restart when the instance memory went over 1GB. Any ideas about this behavior?
Thanks. Siva
On Tue, Sep 1, 2015 at 7:40 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
Responses inline.
On Tue, Sep 1, 2015 at 7:13 PM, Tom Sherrod <tom.sherrod(a)gmail.com> wrote:
What is the default memory size of an app deployed in diego? cf apps indicate 1GB.
Yes. This isn't a diego thing, this is a CC thing.
cf set-env doesn't appear to be getting the environment variable information to the running container. Is cf set-env the correct method to use?
You likely need to restage the application for ENV var changes to take effect. Unless I'm mistaken, this too is not diego-specific, and applies to DEA containers as well.
Thanks! Tom
Best, Amit
-- http://www.twitter.com/sivabalans
-- http://www.twitter.com/sivabalans
|
|
Re: diego questions: default memory and passing env variables
Tweaking the buildpack is less dynamic, and every time you want to make a change you will have to tweak again, create the new buildpack, and upload it to the CC. Moreover, maintaining your own fork of the buildpack adds overhead when you need to consume important changes from the standard buildpack, such as security updates.
toggle quoted messageShow quoted text
On Wed, Sep 2, 2015 at 8:34 PM, Siva Balan <mailsiva(a)gmail.com> wrote: Thanks for the clarification Sabha and Amit. We are using JavaBP and our usecase is to have additional native memory headroom for the app. One option is to tweak the open_jdk.yml file in the JavaBP to give more native memory and reduce the heap in that process or to set this MEMORY_LIMIT env variable. We are going with setting the MEMORY_LIMIT option.
Regards, Siva
On Wed, Sep 2, 2015 at 5:35 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
Ah, I was mistaken. If you set MEMORY_LIMIT, it will not get overwritten. So if you don't set it, it will be set to the container memory limit. But if you do set it, then the java buildpack can take advantage of it in the way Sabha explained.
On Wed, Sep 2, 2015 at 5:18 PM, Sabha Parameswaran <sabhap(a)pivotal.io> wrote:
The MEMORY_LIMIT is used by the java buildpack to configure the various heap parameters for a java app. This variable value is set to the container size by default by the Cloud controller when you push the app and JBP uses that to arrive at heap during staging.
What you have done is making the buildpack work with a lower memory threshold even though the app itself is allowed a higher limit.
Tweak the MEMORY_LIMIT variable only when you are using JavaBP and want to really have some additional native memory headroom to grow (due to native memory usage or safety concerns) or to limit heap from utilizing the full container memory size.
As Amit mentioned, always use cf scale option to change the memory or instance count for the app container.
-Sabha
On Wed, Sep 2, 2015 at 4:17 PM, Siva Balan <mailsiva(a)gmail.com> wrote:
Thanks for the response. But what I am observing is, by setting MEMORY_LIMIT as an environment variable does take effect when I restage the app and it reduces the memory allocated to the java app(not the container itself) to the amount set in the variable. The app is restarted with the same heap ratio as dictated by the buildpack but assumes the max memory available to it is now 1GB instead of 2GB. The container still had 2GB allocated to it and I understand that will be reduced only if I use the "cf scale" command. Is this the expected behavior?
Thanks Siva
On Wed, Sep 2, 2015 at 3:55 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
This is not a environment variable you can set. To scale down the memory allocated to your instances, do
cf scale <app-name> -m 1024M
This will tell Warden/Garden to allocate that much memory to your containers and kill them if they exceed it. The documentation is saying that the processes running inside the container can learn about the memory limit applied to them via the environment variable MEMORY_LIMIT. If you try to set this variable via set-env, it will get overwritten by the value set by "cf scale". Again, the MEMORY_LIMIT environment variable doesn't do anything, it's just information passed into the container via the process's environment. To actually constrain the memory, use "cf scale" or set it in your manifest file:
https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#memory
On Wed, Sep 2, 2015 at 3:08 PM, Siva Balan <mailsiva(a)gmail.com> wrote:
We are not using Diego and we are on CF version 211. I had my application started with 2GB of memory set in the manifest file. I then ran the following command and restaged the app: cf set-env <app-name> MEMORY_LIMIT 1024m Then when I ran "cf app <app-name>", it was still showing the instance memory of 2GB but the heap size allocated to the application was cut in half and I confirmed this through New Relic app. Also, the first full GC of the app occurred when the memory of the instance was at 1.3GB. So I am not quite sure of the description of the MEMORY_LIMIT env variable as described in http://docs.run.pivotal.io/devguide/deploy-apps/environment-variable.html#memory. I did not see my application restart when the instance memory went over 1GB. Any ideas about this behavior?
Thanks. Siva
On Tue, Sep 1, 2015 at 7:40 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
Responses inline.
On Tue, Sep 1, 2015 at 7:13 PM, Tom Sherrod <tom.sherrod(a)gmail.com> wrote:
What is the default memory size of an app deployed in diego? cf apps indicate 1GB.
Yes. This isn't a diego thing, this is a CC thing.
cf set-env doesn't appear to be getting the environment variable information to the running container. Is cf set-env the correct method to use?
You likely need to restage the application for ENV var changes to take effect. Unless I'm mistaken, this too is not diego-specific, and applies to DEA containers as well.
Thanks! Tom
Best, Amit
-- http://www.twitter.com/sivabalans
-- http://www.twitter.com/sivabalans
|
|
Re: diego questions: default memory and passing env variables
Siva Balan <mailsiva@...>
Thanks for the clarification Sabha and Amit. We are using JavaBP and our usecase is to have additional native memory headroom for the app. One option is to tweak the open_jdk.yml file in the JavaBP to give more native memory and reduce the heap in that process or to set this MEMORY_LIMIT env variable. We are going with setting the MEMORY_LIMIT option.
Regards, Siva
toggle quoted messageShow quoted text
On Wed, Sep 2, 2015 at 5:35 PM, Amit Gupta <agupta(a)pivotal.io> wrote: Ah, I was mistaken. If you set MEMORY_LIMIT, it will not get overwritten. So if you don't set it, it will be set to the container memory limit. But if you do set it, then the java buildpack can take advantage of it in the way Sabha explained.
On Wed, Sep 2, 2015 at 5:18 PM, Sabha Parameswaran <sabhap(a)pivotal.io> wrote:
The MEMORY_LIMIT is used by the java buildpack to configure the various heap parameters for a java app. This variable value is set to the container size by default by the Cloud controller when you push the app and JBP uses that to arrive at heap during staging.
What you have done is making the buildpack work with a lower memory threshold even though the app itself is allowed a higher limit.
Tweak the MEMORY_LIMIT variable only when you are using JavaBP and want to really have some additional native memory headroom to grow (due to native memory usage or safety concerns) or to limit heap from utilizing the full container memory size.
As Amit mentioned, always use cf scale option to change the memory or instance count for the app container.
-Sabha
On Wed, Sep 2, 2015 at 4:17 PM, Siva Balan <mailsiva(a)gmail.com> wrote:
Thanks for the response. But what I am observing is, by setting MEMORY_LIMIT as an environment variable does take effect when I restage the app and it reduces the memory allocated to the java app(not the container itself) to the amount set in the variable. The app is restarted with the same heap ratio as dictated by the buildpack but assumes the max memory available to it is now 1GB instead of 2GB. The container still had 2GB allocated to it and I understand that will be reduced only if I use the "cf scale" command. Is this the expected behavior?
Thanks Siva
On Wed, Sep 2, 2015 at 3:55 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
This is not a environment variable you can set. To scale down the memory allocated to your instances, do
cf scale <app-name> -m 1024M
This will tell Warden/Garden to allocate that much memory to your containers and kill them if they exceed it. The documentation is saying that the processes running inside the container can learn about the memory limit applied to them via the environment variable MEMORY_LIMIT. If you try to set this variable via set-env, it will get overwritten by the value set by "cf scale". Again, the MEMORY_LIMIT environment variable doesn't do anything, it's just information passed into the container via the process's environment. To actually constrain the memory, use "cf scale" or set it in your manifest file:
https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#memory
On Wed, Sep 2, 2015 at 3:08 PM, Siva Balan <mailsiva(a)gmail.com> wrote:
We are not using Diego and we are on CF version 211. I had my application started with 2GB of memory set in the manifest file. I then ran the following command and restaged the app: cf set-env <app-name> MEMORY_LIMIT 1024m Then when I ran "cf app <app-name>", it was still showing the instance memory of 2GB but the heap size allocated to the application was cut in half and I confirmed this through New Relic app. Also, the first full GC of the app occurred when the memory of the instance was at 1.3GB. So I am not quite sure of the description of the MEMORY_LIMIT env variable as described in http://docs.run.pivotal.io/devguide/deploy-apps/environment-variable.html#memory. I did not see my application restart when the instance memory went over 1GB. Any ideas about this behavior?
Thanks. Siva
On Tue, Sep 1, 2015 at 7:40 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
Responses inline.
On Tue, Sep 1, 2015 at 7:13 PM, Tom Sherrod <tom.sherrod(a)gmail.com> wrote:
What is the default memory size of an app deployed in diego? cf apps indicate 1GB.
Yes. This isn't a diego thing, this is a CC thing.
cf set-env doesn't appear to be getting the environment variable information to the running container. Is cf set-env the correct method to use?
You likely need to restage the application for ENV var changes to take effect. Unless I'm mistaken, this too is not diego-specific, and applies to DEA containers as well.
Thanks! Tom
Best, Amit
-- http://www.twitter.com/sivabalans
|
|
CAB September Call on 9/9/2015 @ 8a PDT
|
|
Re: diego questions: default memory and passing env variables
Ah, I was mistaken. If you set MEMORY_LIMIT, it will not get overwritten. So if you don't set it, it will be set to the container memory limit. But if you do set it, then the java buildpack can take advantage of it in the way Sabha explained. On Wed, Sep 2, 2015 at 5:18 PM, Sabha Parameswaran <sabhap(a)pivotal.io> wrote: The MEMORY_LIMIT is used by the java buildpack to configure the various heap parameters for a java app. This variable value is set to the container size by default by the Cloud controller when you push the app and JBP uses that to arrive at heap during staging.
What you have done is making the buildpack work with a lower memory threshold even though the app itself is allowed a higher limit.
Tweak the MEMORY_LIMIT variable only when you are using JavaBP and want to really have some additional native memory headroom to grow (due to native memory usage or safety concerns) or to limit heap from utilizing the full container memory size.
As Amit mentioned, always use cf scale option to change the memory or instance count for the app container.
-Sabha
On Wed, Sep 2, 2015 at 4:17 PM, Siva Balan <mailsiva(a)gmail.com> wrote:
Thanks for the response. But what I am observing is, by setting MEMORY_LIMIT as an environment variable does take effect when I restage the app and it reduces the memory allocated to the java app(not the container itself) to the amount set in the variable. The app is restarted with the same heap ratio as dictated by the buildpack but assumes the max memory available to it is now 1GB instead of 2GB. The container still had 2GB allocated to it and I understand that will be reduced only if I use the "cf scale" command. Is this the expected behavior?
Thanks Siva
On Wed, Sep 2, 2015 at 3:55 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
This is not a environment variable you can set. To scale down the memory allocated to your instances, do
cf scale <app-name> -m 1024M
This will tell Warden/Garden to allocate that much memory to your containers and kill them if they exceed it. The documentation is saying that the processes running inside the container can learn about the memory limit applied to them via the environment variable MEMORY_LIMIT. If you try to set this variable via set-env, it will get overwritten by the value set by "cf scale". Again, the MEMORY_LIMIT environment variable doesn't do anything, it's just information passed into the container via the process's environment. To actually constrain the memory, use "cf scale" or set it in your manifest file:
https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#memory
On Wed, Sep 2, 2015 at 3:08 PM, Siva Balan <mailsiva(a)gmail.com> wrote:
We are not using Diego and we are on CF version 211. I had my application started with 2GB of memory set in the manifest file. I then ran the following command and restaged the app: cf set-env <app-name> MEMORY_LIMIT 1024m Then when I ran "cf app <app-name>", it was still showing the instance memory of 2GB but the heap size allocated to the application was cut in half and I confirmed this through New Relic app. Also, the first full GC of the app occurred when the memory of the instance was at 1.3GB. So I am not quite sure of the description of the MEMORY_LIMIT env variable as described in http://docs.run.pivotal.io/devguide/deploy-apps/environment-variable.html#memory. I did not see my application restart when the instance memory went over 1GB. Any ideas about this behavior?
Thanks. Siva
On Tue, Sep 1, 2015 at 7:40 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
Responses inline.
On Tue, Sep 1, 2015 at 7:13 PM, Tom Sherrod <tom.sherrod(a)gmail.com> wrote:
What is the default memory size of an app deployed in diego? cf apps indicate 1GB.
Yes. This isn't a diego thing, this is a CC thing.
cf set-env doesn't appear to be getting the environment variable information to the running container. Is cf set-env the correct method to use?
You likely need to restage the application for ENV var changes to take effect. Unless I'm mistaken, this too is not diego-specific, and applies to DEA containers as well.
Thanks! Tom
Best, Amit
-- http://www.twitter.com/sivabalans
|
|
Re: diego questions: default memory and passing env variables
The MEMORY_LIMIT is used by the java buildpack to configure the various heap parameters for a java app. This variable value is set to the container size by default by the Cloud controller when you push the app and JBP uses that to arrive at heap during staging.
What you have done is making the buildpack work with a lower memory threshold even though the app itself is allowed a higher limit.
Tweak the MEMORY_LIMIT variable only when you are using JavaBP and want to really have some additional native memory headroom to grow (due to native memory usage or safety concerns) or to limit heap from utilizing the full container memory size.
As Amit mentioned, always use cf scale option to change the memory or instance count for the app container.
-Sabha
toggle quoted messageShow quoted text
On Wed, Sep 2, 2015 at 4:17 PM, Siva Balan <mailsiva(a)gmail.com> wrote: Thanks for the response. But what I am observing is, by setting MEMORY_LIMIT as an environment variable does take effect when I restage the app and it reduces the memory allocated to the java app(not the container itself) to the amount set in the variable. The app is restarted with the same heap ratio as dictated by the buildpack but assumes the max memory available to it is now 1GB instead of 2GB. The container still had 2GB allocated to it and I understand that will be reduced only if I use the "cf scale" command. Is this the expected behavior?
Thanks Siva
On Wed, Sep 2, 2015 at 3:55 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
This is not a environment variable you can set. To scale down the memory allocated to your instances, do
cf scale <app-name> -m 1024M
This will tell Warden/Garden to allocate that much memory to your containers and kill them if they exceed it. The documentation is saying that the processes running inside the container can learn about the memory limit applied to them via the environment variable MEMORY_LIMIT. If you try to set this variable via set-env, it will get overwritten by the value set by "cf scale". Again, the MEMORY_LIMIT environment variable doesn't do anything, it's just information passed into the container via the process's environment. To actually constrain the memory, use "cf scale" or set it in your manifest file:
https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#memory
On Wed, Sep 2, 2015 at 3:08 PM, Siva Balan <mailsiva(a)gmail.com> wrote:
We are not using Diego and we are on CF version 211. I had my application started with 2GB of memory set in the manifest file. I then ran the following command and restaged the app: cf set-env <app-name> MEMORY_LIMIT 1024m Then when I ran "cf app <app-name>", it was still showing the instance memory of 2GB but the heap size allocated to the application was cut in half and I confirmed this through New Relic app. Also, the first full GC of the app occurred when the memory of the instance was at 1.3GB. So I am not quite sure of the description of the MEMORY_LIMIT env variable as described in http://docs.run.pivotal.io/devguide/deploy-apps/environment-variable.html#memory. I did not see my application restart when the instance memory went over 1GB. Any ideas about this behavior?
Thanks. Siva
On Tue, Sep 1, 2015 at 7:40 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
Responses inline.
On Tue, Sep 1, 2015 at 7:13 PM, Tom Sherrod <tom.sherrod(a)gmail.com> wrote:
What is the default memory size of an app deployed in diego? cf apps indicate 1GB.
Yes. This isn't a diego thing, this is a CC thing.
cf set-env doesn't appear to be getting the environment variable information to the running container. Is cf set-env the correct method to use?
You likely need to restage the application for ENV var changes to take effect. Unless I'm mistaken, this too is not diego-specific, and applies to DEA containers as well.
Thanks! Tom
Best, Amit
-- http://www.twitter.com/sivabalans
|
|
Re: diego questions: default memory and passing env variables
Siva Balan <mailsiva@...>
Thanks for the response. But what I am observing is, by setting MEMORY_LIMIT as an environment variable does take effect when I restage the app and it reduces the memory allocated to the java app(not the container itself) to the amount set in the variable. The app is restarted with the same heap ratio as dictated by the buildpack but assumes the max memory available to it is now 1GB instead of 2GB. The container still had 2GB allocated to it and I understand that will be reduced only if I use the "cf scale" command. Is this the expected behavior?
Thanks Siva
toggle quoted messageShow quoted text
On Wed, Sep 2, 2015 at 3:55 PM, Amit Gupta <agupta(a)pivotal.io> wrote: This is not a environment variable you can set. To scale down the memory allocated to your instances, do
cf scale <app-name> -m 1024M
This will tell Warden/Garden to allocate that much memory to your containers and kill them if they exceed it. The documentation is saying that the processes running inside the container can learn about the memory limit applied to them via the environment variable MEMORY_LIMIT. If you try to set this variable via set-env, it will get overwritten by the value set by "cf scale". Again, the MEMORY_LIMIT environment variable doesn't do anything, it's just information passed into the container via the process's environment. To actually constrain the memory, use "cf scale" or set it in your manifest file:
https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#memory
On Wed, Sep 2, 2015 at 3:08 PM, Siva Balan <mailsiva(a)gmail.com> wrote:
We are not using Diego and we are on CF version 211. I had my application started with 2GB of memory set in the manifest file. I then ran the following command and restaged the app: cf set-env <app-name> MEMORY_LIMIT 1024m Then when I ran "cf app <app-name>", it was still showing the instance memory of 2GB but the heap size allocated to the application was cut in half and I confirmed this through New Relic app. Also, the first full GC of the app occurred when the memory of the instance was at 1.3GB. So I am not quite sure of the description of the MEMORY_LIMIT env variable as described in http://docs.run.pivotal.io/devguide/deploy-apps/environment-variable.html#memory. I did not see my application restart when the instance memory went over 1GB. Any ideas about this behavior?
Thanks. Siva
On Tue, Sep 1, 2015 at 7:40 PM, Amit Gupta <agupta(a)pivotal.io> wrote:
Responses inline.
On Tue, Sep 1, 2015 at 7:13 PM, Tom Sherrod <tom.sherrod(a)gmail.com> wrote:
What is the default memory size of an app deployed in diego? cf apps indicate 1GB.
Yes. This isn't a diego thing, this is a CC thing.
cf set-env doesn't appear to be getting the environment variable information to the running container. Is cf set-env the correct method to use?
You likely need to restage the application for ENV var changes to take effect. Unless I'm mistaken, this too is not diego-specific, and applies to DEA containers as well.
Thanks! Tom
Best, Amit
|
|