<p>Hope you can help me with this!</p>

<p>What is the best approach to get and set request and limits resource per pods? </p>

<p>I was thinking in setting an expected number of traffic and code some load tests, then start a single pod with some "low limits" and run load test until OOMed, then tune again (something like overclocking) memory until finding a bottleneck, then attack CPU until everything is "stable" and so on. Then i would use that "limit" as a "request value" and would use double of "request values" as "limit" (or a safe value based on results). Finally scale them out for the average of traffic (fixed number of pods) and set autoscale pods rules for peak production values. </p>

<p>Is this a good approach? What tools and metrics do you recommend? I'm using prometheus-operator for monitoring and vegeta for load testing.</p>

<p>What about vertical pod autoscaling? have you used it? is it production ready?</p>

<p>BTW: I'm using AWS managed solution deployed w/ terraform module</p>

<p>Thanks for reading</p>

<p>I usually start my pods with no limits nor resources set. Then I leave them running for a bit under normal load to collect metrics on resource consumption.</p>

<p>I then set memory and CPU requests to +10% of the max consumption I got in the test period  and limits to +25% of the requests.</p>

<p>This is just an example strategy, as there is no one size fits all approach for this.</p>
