容器 cpu 占有率为什么异常升高? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
xiongya5555
V2EX    Linux

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

  •  
  •   xiongya5555 2021-01-29 21:57:39 +08:00 2827 次点击
    这是一个创建于 1728 天前的主题,其中的信息可能已经有所发展或是发生改变。
    使用同一个镜像运行容器,每个容器 2 核,当只有一个容器运行时,该容器 cpu 占有率始终为 40%,当有十二个容器运行时,每个容器 cpu 占有率始终为 120%,可能是什么原因?(网络,磁盘,GPU 都没跑满,容器内线程调用栈也看不出什么问题)
    18 条回复    2021-01-31 23:13:03 +08:00
    laminux29
        1
    laminux29  
       2021-01-30 00:58:35 +08:00
    虚拟化由于其兼容问题的复杂度过高,永远都没办法 100%稳定。

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

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

    另外 Container 和 Hypervisor 是两个体系。。
    laminux29
        6
    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". Netork 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
        7
    laminux29  
       2021-01-30 11:02:37 +08:00
    @nevin47

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

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

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

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

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

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

    楼上的 fuse 感觉也是一本正经的乱猜胡说
    fuse
        18
    fuse  
       2021-01-31 23:13:03 +08:00 via iPhone
    @tkl 想听听你的高见,占有率怎么算
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5210 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 07:31 PVG 15:31 LAX 00:31 JFK 03:31
    Do have faith in what you're doing.
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11940834-2', 'v2ex.com'); ga('send', 'pageview'); ga('send', 'event', 'Node', 'topic', 'linux'); ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86