在 Deployment 创建 15 个 pod 实例压测无法跑满 cpu ,最多只用到了分配 cpu 的 40%,性能就同比例下降。 如果只创建几个 pod 比如 1 ,2 个,再做压测就不会出现 cpu 跑不满的问题。
对于 yaml 文件里 limits 和 requests 都配置了,负载均衡也看过没有问题。 所以这个是什么问题造成的呢,是 k8s 哪里的配置导致的吗?
1
devopsdogdog 2023-10-20 17:17:25 +08:00 1
估计是 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 独立一台小机器,性能好得很 |