• CPU


    cpu是计算机里最重要的资源,没有之一,并且在性能优化领域,也是最需要理解的内容。

    在代码执行方面,cpu执行代码的最终指令,调度资源,操作内存,对完成一个任务的各个方面都有较大影响。

    首先,在linux中查看cpu信息的基础指令是看cpu的硬件信息

    cat /proc/cpuinfoo

    可以看到cpu的核数,单核的频率,以及cpu支持的一些特性。

    另外一个最多接触到的内容是 load average 三联组,在很多命令中都会体现,w,top,uptime等等。

    分别表示最近1,5,15分钟的cpu使用压力。

    关于cpu的使用%比,和cpu load,是两个相似又有不同的概念,在linux里,cpu%也有不同的解释,具体不同,见下方解释。

    cpu使用%

    • top的最上面的部分
    • us 总体用户态cpu的使用%
    • sy 核心态
    • wa cpu等待,这里主要是等待io
      • iowait的产生是因为cpu处理的请求除了iowait之外就没有其它事情可以做了,或者说所有的线程,如果runable状态的都在做io操作
    • id 空闲
    • top中线程上看到的cpu%,是1个cpu对应100%,上面说的几个值是所有cpu对应100%,所以在多cpu的时候,会看到线程已经大于200%了,而上面的数据还很正常

    load

    • 主要关注的是等待执行的队列的长度
    • 因为等待的队列长,造成的上下文切换也较多
      • 上下文切换可以看vmstat的cs部分
    • 另外如果cpu使用和load不同步,需要注意任务大大小。
      • 如果任务太小,会造成load》cpu%
      • 任务很大,cpu%》load
    • 关于load的值,也是要看cpu的核数,如果load数<=cpu数,表明某个时间段,没有任何任务是需要等待cpu资源才能开始处理的
  • 相关阅读:
    效果超酷的textarea的输入字数限提示
    【设计模式(七)】结构型模式之桥接模式
    【设计模式(六)】适配器模式
    【设计模式(四)】原型模式
    【设计模式(三)】工厂模式
    【设计模式(二)】单例模式
    【设计模式(一)】设计模式概览与六大设计原则
    【算法刷题】无重复字符的最长子串
    【算法刷题】全排列 II
    【算法刷题】LRU缓存模拟
  • 原文地址:https://www.cnblogs.com/huxinping8800/p/7085027.html
Copyright © 2020-2023  润新知