zoukankan      html  css  js  c++  java
  • 服务器性能之CPU

    有时我们会发现开发的应用在CPU核数一样的虚拟服务器上性能表现出较大的差异,这是为什么呢?上次有童鞋问到我这样一个问题,所以我根据自己的理解给大家简说下!

    CPU生产商为了提高CPU的性能,通常做法是提高CPU的时钟频率和增加缓存容量。不过目前CPU的频率越来越快,如果再通过提升CPU频率和增加缓存的方法来提高性能,往往会受到制造工艺上的限制以及成本过高的制约。于是出现了超线程技术。

    超线程技术:将一颗具Hyper-Threading功能的“实体”处理器变成两个“逻辑”处理器。

    Linux命令:

    cat /proc/cpuinfo

    参数解释:
    processor 逻辑处理器的id
    physical id 物理封装的处理器的id
    core id 每个核心的id
    cpu cores 位于相同物理封装的处理器中的内核数量
    siblings 位于相同物理封装的处理器中的逻辑处理器的数量
    cpu MHz 主频
    cache size 缓存大小(KB)

    我们先看来虚拟服务器1的CPU配置信息:

    这里写图片描述

    说明:该服务器主机有2个物理封装的处理器(physical id),每个处理器有1个处理核心(cpu cores),每个处理核心划分成2个逻辑处理器(processor),可以看出此处使用了超线程技术,如下所示:

    这里写图片描述

    再看来虚拟服务器2的CPU配置信息:

    这里写图片描述

    说明:该服务器主机有1个物理封装的处理器(physical id),每个处理器有4个处理核心(cpu cores),每个处理核心划分成1个逻辑处理器(processor),可以看出此处未使用超线程技术,如下所示:

    这里写图片描述

    1. 上述2台虚拟机,从CPU的角度讲哪台性能会发挥地更好呢?
      答:从逻辑处理器数量来看,2台虚拟机都是4个,但从主频和缓存大小可以看出,虚拟机2的性能应该比虚拟机1好。

    2. 如果2台虚拟机的主频和缓存大小一样呢,从CPU的角度看哪台性能更好呢?
      答:从逻辑处理器数量来看,2台虚拟机一样,而虚拟机1使用了超线程技术,理论上讲虚拟机1的性能比较靠近虚拟机2的性能,前提的是我们开发应用要支持超线程技术,否则也无法发挥出良好的性能!这里面其实还有一个误区:
      比如说,我们的应用使用多线程技术开发的,那么在CPU层面开启了超线程技术,一定会提高性能吗?答案是否定的!只有当应用程序使用的线程数大于CPU的核数,性能才能提高上去!

    PS~~今天就总结到这里,欢迎大家来讨论和交流!

  • 相关阅读:
    为什么需要Docker?
    一分钟学会《模板方法模式》
    2018再见|2019你好
    三分钟学会《门面模式》
    策略模式原来这么简单!
    外行人都能看得懂的机器学习,错过了血亏!
    我是如何将博客转成PDF的
    面试前必须知道的MySQL命令【explain】
    count(*)、count(1)和count(列名)的区别
    Linux shell去除字符串中所有空格
  • 原文地址:https://www.cnblogs.com/qwop/p/6637367.html
Copyright © 2011-2022 走看看