performance - 在 kubernetes 上查找和设置应用程序资源限制/请求的最佳方法
问题描述
希望你能帮我解决这个问题!
获取和设置请求并限制每个 pod 资源的最佳方法是什么?
我正在考虑设置预期的流量数量并编写一些负载测试,然后以一些“低限制”启动一个 pod 并运行负载测试直到 OOMed,然后再次调整(例如超频)内存直到找到瓶颈,然后攻击CPU,直到一切都“稳定”等等。然后我会将该“限制”用作“请求值”,并将“请求值”的两倍用作“限制”(或基于结果的安全值)。最后将它们扩展为平均流量(固定数量的 Pod),并为峰值生产值设置自动缩放 Pod 规则。
这是一个好方法吗?您推荐哪些工具和指标?我使用 prometheus-operator 进行监控,使用 vegeta 进行负载测试。
垂直 Pod 自动缩放怎么样?你用过吗?准备好生产了吗?
顺便说一句:我正在使用 AWS 托管解决方案部署 w/ terraform 模块
谢谢阅读
解决方案
我通常在没有限制或资源设置的情况下启动我的 pod。然后我让它们在正常负载下运行一段时间以收集有关资源消耗的指标。
然后,我将内存和 CPU 请求设置为测试期间获得的最大消耗的 +10%,并将请求限制为 +25%。
这只是一个示例策略,因为没有一种适合所有方法的方法。
推荐阅读
- javascript - 在运行 npx create-react-app 时,它显示软件包正在寻找资金
- python - 如何从图像中删除或清除轮廓?
- linux - 在 Google Compute Engine 上设置 cronjob
- tfs - TFSAPI:获取特定文件的先前版本
- html - 插入标签标签之前和之后
- android - 无法从外部类更改我的片段变量的值
- docker - Docker 不会启动
- c - 我应该如何释放一个结构数组?
- fusioncharts - 如何从 legendItemRollover 触发融合图表向下钻取事件以显示链接图表
- python-3.x - 运行奇异容器时提高 CPU 使用限制