Home > Software engineering >  Latency in Cloud Foundry
Latency in Cloud Foundry

Time:08-15

Questions:

  1. How do you define latency in cloud foundry?
  2. Is cloud foundry a distributed cloud ?
  3. High Load(Transferring oversized files via Rest call) on one of the app in cloud foundry will impact other apps performance? if yes how?
  4. How is latency calculated for over all cloud network traffic and latency? and any metrics that can be used to determine how is current network latency doing?

Thanks in advance!

CodePudding user response:

  1. How do you define latency in cloud foundry?

The same way it's defined elsewhere. In regards to application traffic on CF, the system will add latency because traffic to your application routes through typically two (external load balancer and Gorouter) or more load balancer layers (optionally additional external load balancers).

Each layer takes some amount of time to process the request, which means each layer adds some amount of latency to the request.

Is cloud foundry a distributed cloud ?

It's a distributed system. Individual components of CF can be scaled as needed (i.e. Gorouter or UAA or Cloud Controller, they are all separate). Not sure what's meant beyond that.

High Load(Transferring oversized files via Rest call) on one of the app in cloud foundry will impact other apps performance? if yes how?

High CPU load in one application can impact the performance of other applications in some ways, however, Cloud Foundry has mitigations in place to generally minimize the impact.

Specifically, an application running on CF will be given a certain number of CPU shares, and the shares ensure a minimal amount of guaranteed CPU time for that app. If there is contention for CPU, then the OS (i.e. Linux kernal) will enforce these limits. If there is no contention, then applications may burst above their allocations and consume extra time.

Where you typically see performance impact caused by load from other applications is when you have an application that is used to consuming or perhaps load tested while consuming additional CPU (i.e. it expects to be able to burst above their assigned limits). This can be a problem because while you'll often be able to burst above the CPU limit, if you suddenly have CPU contention from some other app that now requires its fair share of CPU time, then the limits will be enforced and the app original won't be able to burst above its limits. This is an example of how high load in one app can impact the performance of another application on the platform, though it is no fault of the platform that causes this. The application owner should be sizing CPU for worst case, not the best case.

You can use the cpu entitlement cf cli plugin to get more details on your app's CPU consumption and if your app is bursting above its entitlement. If you are above the entitlement, then you need to increase the memory limit for your app because CPU shares are directly tied to the memory limit of your app in CF (i.e. there is no way to increase just the CPU shares).

How is latency calculated for over all cloud network traffic and latency? and any metrics that can be used to determine how is current network latency doing?

Again, the same way it's calculated elsewhere. It's the time delay added for the system to process the request.

  • Related