首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kubernetes应用程序有多少线程?

kubernetes应用程序有多少线程?
EN

Stack Overflow用户
提问于 2020-04-04 18:06:52
回答 1查看 567关注 0票数 0

我有一个多线程应用程序,它执行一个CPU密集型任务,我想在Kubernetes上运行它。我使用的节点有56个核心,我为我的pod设置了2个核心的请求和限制。

因为它是CPU密集型的,所以通常没有必要拥有比核心数量更多的线程(使用超线程,线程数量可能是核心数量的两倍),所以我会分配2-4个线程并将其称为一天。

然而,AFAIK,Kubernetes并不保证核心亲和力,所以在最坏的情况下,两个核心可以平均分布在56个核心上,每个核心并行工作的时间有2/56。如果发生这种情况,并且我只分配了4个线程,那么56个核心中至少有52个将处于空闲状态。

如果我理解正确的话,这个问题并不是Kubernetes独有的,它适用于任何共享硬件资源的虚拟化环境。

当涉及到处理这种潜在的最坏情况时,最佳实践是什么?你会忽略它并假设你有很高的局部性,还是做了最坏的打算,或者介于两者之间?

EN

回答 1

Stack Overflow用户

发布于 2020-04-05 21:07:57

线程调度依赖于包括亲和力在内的操作系统,kubernetes通常不会影响它。如果它对你的工作负载很重要-你可以尝试k8s中的Static policy,为你的应用程序提供独有的CPU核心。

您可以使用pod CPU limit 56并运行56个线程来利用所有节点核心。假设此节点上的所有其他pod使用正确的CPU请求,这应该不会对其他pod产生负面影响。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61026524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档