大佬们,求教一个多核 cpu top 的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
arcaitan
V2EX    Linux

大佬们,求教一个多核 cpu top 的问题

  •  
  •   arcaitan 2020 年 12 月 1 日 2905 次点击
    这是一个创建于 1886 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我执行 top 命令是类似这个样子: (sdk) [xxx ~]$ top top - 15:46:23 up 81 days, 6:09, 7 users, load average: 15.03, 14.66, 20.48 Tasks: 760 total, 20 running, 715 sleeping, 25 stopped, 0 zombie %Cpu(s): 35.7 us, 18.1 sy, 5.4 ni, 40.0 id, 0.2 wa, 0.0 hi, 0.1 si, 0.4 st KiB Mem : 22260643+total, 15450846+free, 18399780 used, 49698192 buff/cache KiB Swap: 0 total, 0 free, 0 used. 20240766+avail Mem

    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 9055 xxxxxxxx 20 0 3235836 311676 35476 S 47.0 0.1 0:01.42 xxx 8836 xxxxxxxx 20 0 3235836 309780 35504 S 44.4 0.1 0:01.40 xxx

    已经知道机器是 36 核的,

    我查了一下,它物理 cpu 个数是 2,每个物理 cpu 的核数是 18,

    有没有大佬告诉我怎么看这个 load avergage,和下面的%CPU 占用率和这个 cpu 核数的对应关系?

    网上搜了半天没找到讲得清楚了,能不能求 v 站大佬给点指导?或者告诉我去看那些资料可以获取到这个信息?

    跪谢

    15 条回复    2020-12-02 15:51:52 +08:00
    weizhen199
        1
    weizhen199  
       2020 年 12 月 1 日
    下个 nmon 试试?
    arcaitan
        2
    arcaitan  
    OP
       2020 年 12 月 1 日
    为什么我用,md 语法没生效--
    Vegetable
        3
    Vegetable  
       2020 年 12 月 1 日
    因为你用了中文的而不是`,所以格式没出来。
    arcaitan
        4
    arcaitan  
    OP
       2020 年 12 月 1 日
    @Vegetable 汗颜
    arcaitan
        5
    arcaitan  
    OP
       2020 年 12 月 1 日
    @weizhen199 我就是用 cpulimit -p 47380 -l 10 这种,想限制某个进程不要占满 cpu,然后发现整个多核状态很困扰
    woshiaha
        6
    woshiaha  
       2020 年 12 月 1 日
    load avergage 并不一定和 cpu 负载对应 因为在某一个版本的 linux 修改中 将硬盘 io 这些因素也考虑了进去 你如果去放个 IO 量大的服务上去压测可以随便压到 100 多
    lvzhiqiang
        7
    lvzhiqiang  
       2020 年 12 月 1 日
    平均负载和 CPU 使用率没有必然的关系。 平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃的进程数。一般不可中断状态的进程,IO 进程为主。 -- 推荐资料,你可以看看极客时间 Linux 性能优化实战 这门课程,讲了很多有关性能方面的知识和实战技巧。 -- 如果看起来有难度的话,建议补下操作系统 进程管理方面的知识。
    arcaitan
        8
    arcaitan  
    OP
       2020 年 12 月 1 日
    @lvzhiqiang 谢谢,我明天看一下
    dorothyREN
        9
    dorothyREN  
       2020 年 12 月 1 日
    36 核满载 是 3600%
    laminux29
        10
    laminux29  
       2020 年 12 月 1 日
    你研究方向弄错了。你应该去从源码分析。
    liuhuan475
        11
    liuhuan475  
       2020 年 12 月 2 日
    按 1
    arcaitan
        12
    arcaitan  
    OP
       2020 年 12 月 2 日
    @laminux29什么意思?看 linux 内核源码么?
    libook
        13
    libook  
       2020 年 12 月 2 日   1
    Load Average 三个值,分别是最近 1 分钟、5 分钟、15 分钟的平均负载值。
    值代表的意思是当前有多少个任务在等待被处理。如果接近 0 就代表现在系统负载很低,不会有任务堆积;越高就代表任务出现了堆积。

    但是对于多(逻辑)核 CPU 来说,它能同时完成多个任务;比如 8 核心 CPU,当瞬时负载 16 、且没有新的任务加入、且不存在其他瓶颈的情况下,理想情况下 CPU 处理完手里的所有任务可以直接从等待的任务里拿走 8 个去处理,将负载从 16 降为 8 。所以一般来说,负载达到 CPU 总核心数代表 100%满载,超过就是过载,低就是空载。

    这是个系统宏观综合负载的表达,不代表系统中某一个组件的性能情况,比如内存、磁盘、网络、设备等短板也都会导致任务不能尽快完成,造成任务堆积,此时 CPU 可能还在空转,但对于系统来说可能已经过载。

    想要解决过载问题的话,还是得看系统各个资源的具体情况。
    arcaitan
        14
    arcaitan  
    OP
       2020 年 12 月 2 日
    @libook 谢谢回复。所以 36 核,如果 load 的 1 分钟对应的值是 36 就是满载,它和 cpu 也不强相关,因为有时候这个值靠近 36,但是下面显示的 cpu 占有率加起来并不是 3600%,我想知道,如果某一个进程对应后面的值是 101%,它是指占有的 36 核 cpu 的总量,那我怎么知道它占的各个 cpu 是多少呢?还是说我其实不需要关心这个,对于系统来说它是统一调度者 36 核的?
    libook
        15
    libook  
       2020 年 12 月 2 日
    @arcaitan 每个进程的%CPU 值代表占用 CPU 计算时间,100%相当于 1 个核心的全部计算时间,所以多线程可能会导致这个超过 100%,但 100%并不代表完全在用某 1 个核心,操作系统会调度所有的核心,使用成熟的算法最大化资源的利用效率,除非使用了某种绑定机制强制绑定一些核心使用。
    所以你不需要关心具体是哪个核心。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1020 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 90ms UTC 18:38 PVG 02:38 LAX 10:38 JFK 13:38
    Do have faith in what you're doing.
    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