
在 Deployment 创建 15 个 pod 实例压测无法跑满 cpu ,最多只用到了分配 cpu 的 40%,性能就同比例下降。 如果只创建几个 pod 比如 1 ,2 个,再做压测就不会出现 cpu 跑不满的问题。
对于 yaml 文件里 limits 和 requests 都配置了,负载均衡也看过没有问题。 所以这个是什么问题造成的呢,是 k8s 哪里的配置导致的吗?
1 devopsdogdog 2023-10-20 17:17:25 +08:00 估计是 cpu 调度问题,观察上下文和 io |
2 mantou99 2023-10-20 17:24:38 +08:00 via Android 猜测多核优化的问题 kubelet 加参数 cpu manger policy =static resource 设置 limit=request 然后再测试看看 |
3 standchan 2023-10-20 17:26:35 +08:00 pod 上面一层的负载均衡你们是用什么 |
4 uriel2333 OP @standchan 上一层是腾讯云的 lb ,这个也看过了,没啥问题,pod 上面跑的是模型,不知道有没有什么影响 |
6 uriel2333 OP @devopsdogdog 好的 谢谢 |
7 standchan 2023-10-20 18:02:51 +08:00 @uriel2333 #4 你可以确认一下不同节点用的 cpu 是否是一样的,如果你跑这种偏低层的计算。amd 和英特尔可能会不太一样?另外你可以观察一下,如果每个节点都只分配到一个 pod ,但是 pods 数量大于你测试的 2 个,性能会不会下降? |
8 uriel2333 OP @standchan CPU 我看到是 x86 的,没看到是哪个牌子,我测试过,超过 8 个 pod 就会开始性能下降,不超过 8 个,cpu 利用率还是能到 80% |
9 yyttrr 2023-10-20 19:01:43 +08:00 推理场景是吧?阿里云的 ECI 效果明显好于 ECS ,腾讯云的话就是 EKS ,你试试吧 我当时在 32 核机器上跑推理,超过 16 个 pod 也遇到过会变慢的情况,后来全改成用 servless pod 了 每个 pod 独立一台小机器,性能好得很 |