Ara Pulido

A Tale of Tail Latency: Understanding Kubernetes CPU Requests and Limits For Sustainability and Profit by Ara Pulido

When deploying an application to Kubernetes, each container in a pod should define CPU requests and limits. It is more commonly understood how CPU requests affect the scheduling of your pod and the future pods in the same node. But outside scheduling, CPU requests and limits have some effects on how your containers are created and can heavily impact their performance and their energy footprint.

In this talk we will help clarify some misconceptions about CPU requests and limits by explaining, in a developer friendly way, how they translate to some Linux internals. We will offer some quick tips on how to understand those effects, minimise them, and select good values to reduce your application energy footprint while ensuring its performance.

Talk Questions

      
  • Question 692
    How to request / limit the app, that does not use a lot of cpu for running, but uses a lot for startup. If you limit it, startup time is long.
  • Question 679
    Now a days to prevent cpu throttling its recommended not to have any cpu limits. What are your thoughts on this?
  • Question 688
    Is it make sense to define CPU request depending on daily usage pattern? If so do you know any means to achieve such dynamic requests?
  • Question 686
    When to increase the number of instances and when to increase cpu and memory? I am asking mainly in the context of a service that runs on ECS. The question of vertical or horizontal scaling.
  • Question 689
    Are there any downsides of decreasing linux scheduler time slots?
  • Question 690
    What's your recommendation to right size apps when they may vary depends on traffic?
  • Question 694
    There should be a balance between cpu request and cpu limit?
  • Question 695
    How to handle when an app have a high request on the booting and after that it drop the consumption, if the limit is below the need from the boot the pod fails to start and after that we have an unreachable cpu that isnt been using
  • Question 696
    How can I right size my application?
  • Question 697
    In cases of EKS cron jobs running on Fargate nodes where we add the Datadog agent as a sidecar, is it possible to indicate to the Datadog agent container to also terminate once the main container process completes, so the job can finish?
  • Question 698
    How do we effectively scale apps based on requests when there are multiple containers inside the same pod?