容器 cpu 占有率为什么异常升高?

2021-01-29 21:57:39 +08:00
 xiongya5555
使用同一个镜像运行容器,每个容器 2 核,当只有一个容器运行时,该容器 cpu 占有率始终为 40%,当有十二个容器运行时,每个容器 cpu 占有率始终为 120%,可能是什么原因?(网络,磁盘,GPU 都没跑满,容器内线程调用栈也看不出什么问题)
2396 次点击
所在节点    Linux
18 条回复
laminux29
2021-01-30 00:58:35 +08:00
虚拟化由于其兼容问题的复杂度过高,永远都没办法 100%稳定。

玩虚拟化,最好是找台同配置电脑或服务器,装 ESXi,拿来做参照基准,这样找问题会比较容易。

找问题时,多用快照甚至克隆。每当你对虚机做了一小个更改,立马保存一个版本。通过不断对比版本,你就能发现,哪次在什么地方,做了什么更改,导致系统突然变得不稳定,或者系统的 CPU 使用率突然增高。找到问题出处后,再去分析,才容易得到结论。
cheng6563
2021-01-30 01:18:36 +08:00
是不是有健康检查
owenliang
2021-01-30 07:50:03 +08:00
是不是服务器过载了呢
BeautifulSoap
2021-01-30 08:47:26 +08:00
@laminux29 老哥,容器不是虚拟化
nevin47
2021-01-30 09:52:45 +08:00
@laminux29 #1 虚拟化工程师表示被冒犯

另外 Container 和 Hypervisor 是两个体系。。
laminux29
2021-01-30 11:00:49 +08:00
@BeautifulSoap
如果一定要掰字眼的话:
1.
Operating-system-level virtualization, also known as containerization, refers to an operating system feature in which the kernel allows the existence of multiple isolated user-space instances. Such instances, called containers,

Hogg, Scott (2014-05-26). "Software Containers: Used More Frequently than Most Realize". Network World. Network World, Inc. Retrieved 2015-07-09.

2.
To do this, containers take advantage of a form of operating system (OS) virtualization in which features of the OS

IBM Cloud Education (12 August 2019 ), "What are containers".
laminux29
2021-01-30 11:02:37 +08:00
@nevin47

1.没必要觉得被冒犯,VMware 公司的产品,功能与稳定性,目前太阳系第一。有时间建议了解一下这公司的发家史。

2.我没说它们完全是一回事,我只是建议用 ESXi 作为参照基准。
fuse
2021-01-30 11:35:35 +08:00
哥哥来跟你们解释一下
如何容器里面的任务,也就是干的活都一样的情况下

cpu 使用变高,说明指令执行变慢了,perf ipc 查看

为什么会变慢,原来缓存就给一个任务用,命中高,现在多人用,每个任务分到的就少,执行就慢

系统总资源是一定的
fuse
2021-01-30 11:37:27 +08:00
当然也包括 cpu 内其他资源,共享,造成指令执行等待
fuse
2021-01-30 11:39:22 +08:00
你家房子就住你一个人,用厨房,上厕所都很快,
但是住个 10 个人,你要上厕所,就要等别人上完
cassyfar
2021-01-30 11:44:45 +08:00
首先 top 确定是 service 占用 CPU 过大。然后对 service 作 CPU profiling 确定哪段程序占用 CPU 异常。
xiongya5555
2021-01-30 11:56:35 +08:00
@fuse cpu 每个核心的缓存不是独立的吗?如果一个 cpu 中某个核心做的事情会引起另外一个核心变慢,那公有云服务厂商是怎么玩的?
fuse
2021-01-30 11:59:47 +08:00
@xiongya5555 l3 缓存不是独立的,共享的
缓存只是其中一项,
意思是,有些共享资源会拖慢别人运行

楼主又没说邦核了没有,没绑不就到处跑吗
xiongya5555
2021-01-30 12:06:28 +08:00
@fuse 抱歉,忘记说了,绑核了的
xiongya5555
2021-01-30 16:44:21 +08:00
目前猜测是某个资源竞争访问太多,内核中有过多自旋锁造成的 cpu 升高
fuse
2021-01-31 08:32:34 +08:00
@xiongya5555 那你就要看是用户态还是内核
tkl
2021-01-31 11:48:10 +08:00
占有率始怎么算得 你连背景都没说清楚

楼上的 fuse 感觉也是一本正经的乱猜胡说
fuse
2021-01-31 23:13:03 +08:00
@tkl 想听听你的高见,占有率怎么算

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/749712

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX