zoukankan      html  css  js  c++  java
  • [svc][cpu][jk]cpu的核心查看及什么是cpu的负载

    监控的时候我们会监控cpu的负载,那么什么是负载?

    编程时候有多核多线程的概念,那么cpu内部如何运作的?

    搞清多少bit cpu? 有几个物理cpu?每个cpu是几核的?

    之前购买内存条时候,需要关注服务器的内存条信息,是ddr3还是4,还有频率.

    多CPU: 即一个机器装了多个cpu
    多核CPU:即一个cpu有多个核心

    - 简单粗暴的看下我共有几核cpu(2个)
    $ cat /proc/cpuinfo |grep processor
    processor	: 0
    processor	: 1
    
    
    - 多少bit的cpu?
    $ arch 
    x86_64
    
    或者: uname -a 或 file /bin/ls 
    参考: http://blog.csdn.net/tianlesoftware/article/details/6267115
    
    
    ## cat /proc/cpuinfo输出的几个字段的含义
    processor:  逻辑CPU的标识
    model name: 真实CPU的型号信息
    physical id: 真实CPU和标识
    cpu cores:  真实CPU的内核数
    
    - 我这台vm的cpu型号
    $> grep 'model name' /proc/cpuinfo |uniq
    model name : Intel(R) Xeon(R) CPU  E5320  @ 1.86GHz
    
    - 我这台vm有几个物理cpu(2个)
    $> grep 'physical id' /proc/cpuinfo |sort |uniq |wc -l
    2
    
    - 我这个vm每个物理cpu有几个核心(2个)
    $> grep 'cpu cores' /proc/cpuinfo |uniq
    2
    

    cat /proc/cpuinfo输出的几个字段的含义

    cpu的负载是怎么回事?

    总而言之,不要让超过cpu核数,简单讲,如果有一个核,负载不要让超过1.

    # uptime
     22:11:00 up 63 days,  5:55,  1 user,  load average: 0.00, 0.03, 0.05
                                                                                         5min 10min 15min的负载
    

    当CPU完全空闲的时候,平均负荷为0;当CPU工作量饱和的时候,平均负荷为1。
    "load average"的值越低,比如等于0.2或0.3,就说明电脑的工作量越小,系统负荷比较轻。

    把这个CPU想象成一座大桥,桥上只有一根车道,所有车辆都必须从这根车道上通过。(很显然,这座桥只能单向通行。)
    系统负荷为0,意味着大桥上一辆车也没有。

    系统负荷为0.5,意味着大桥一半的路段有车。

    系统负荷为1.0,意味着大桥的所有路段都有车,也就是说大桥已经"满"了。但是必须注意的是,直到此时大桥还是能顺畅通行的。

    系统负荷为1.7,意味着车辆太多了,大桥已经被占满了(100%),后面等着上桥的车辆为桥面车辆的70%。以此类推,系统负荷2.0,意味着等待上桥的车辆与桥面的车辆一样多;系统负荷3.0,意味着等待上桥的车辆是桥面车辆的2倍。总之,当系统负荷大于1,后面的车辆就必须等待了;系统负荷越大,过桥就必须等得越久。

    CPU的系统负荷,基本上等同于上面的类比。大桥的通行能力,就是CPU的最大工作量;桥梁上的车辆,就是一个个等待CPU处理的进程(process)。
    如果CPU每分钟最多处理100个进程,那么系统负荷0.2,意味着CPU在这1分钟里只处理20个进程;系统负荷1.0,意味着CPU在这1分钟里正好处理100个进程;系统负荷1.7,意味着除了CPU正在处理的100个进程以外,还有70个进程正排队等着CPU处理。

    为了电脑顺畅运行,系统负荷最好不要超过1.0,这样就没有进程需要等待了,所有进程都能第一时间得到处理。很显然,1.0是一个关键值,超过这个值,系统就不在最佳状态了,你要动手干预了。

    你真的了解多核处理器吗? 了解多线程

    参考

  • 相关阅读:
    为了实现在线库的复杂查询,你还在双写吗?
    双11核心系统100%上云 !阿里数据库处理峰值远超传统厂商
    每秒8700万次!双11数据库峰值新纪录背后的关键力量
    最强CP!阿里云联手支付宝小程序如何助力双11?
    .net IAsyncResult 异步操作
    .net Reflection(反射)- 二
    .net Reflection(反射)- 一
    .net 空接合操作符 ??
    .net 基元类型,引用类型和值类型
    .net List<T>
  • 原文地址:https://www.cnblogs.com/iiiiher/p/8470924.html
Copyright © 2011-2022 走看看