有时我们会发现开发的应用在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~~今天就总结到这里,欢迎大家来讨论和交流!

服务器性能之CPU的更多相关文章

  1. PHP 获取linux服务器性能CPU、内存、硬盘、进程等使用率

    数据库配置文件: conn.php <?php define("MONITORED_IP", "172.16.0.191"); //被监控的服务器IP地址 ...

  2. 检查Linux服务器性能

    如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在? 概述通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解. • uptime• ...

  3. 用十条命令在一分钟内检查Linux服务器性能

    转自:http://www.infoq.com/cn/news/2015/12/linux-performance 如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出L ...

  4. Apache服务器性能监控

    Apache服务器性能监控 1.使用自带mod_status模块监控 1)加载mod_status.so 模块 在httpd.conf中打开LoadModule status_module modul ...

  5. JMeter 服务器性能监测插件介绍

    简介 压力测试过程中,能够随时对负载服务器的健康状况的把控是相当重要的,有了这些数据,我们才能准确分析出服务器负载瓶颈.当你面对的是一个集群的时候,如果能了解到负载是否被正确分发,是不是一件很棒的事情 ...

  6. Zynga 开源其服务器性能监控分析工具 zPerfmon

    流年不利的社交游戏服务商Zynga近日在官方博客宣布开源zPerfmon——该工具负责监控Zynga数以千计的社交游戏服务器.zPerfmon的源代码目前已经上传至Github. 包括Facebook ...

  7. Nginx 服务器性能参数设置

    Nginx服务器性能调优 Nginx 配置文件 1.根据CPU内核数设置worker进程个数,以12核CPU为例,设置11个worker进程: worker_processes 11; worker_ ...

  8. 1分钟内检查Linux服务器性能的10条命令

    如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?Netflix性能工程团队的Brendan Gregg写下了这篇博文,来看他们是怎样通过十条命 ...

  9. 如何用十条命令在一分钟内检查Linux服务器性能

    “如果你的Linux服务器突然负载暴增,报警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇博文,看它们通过十条命令在一分钟内对机器性能问题进行诊断 ...

随机推荐

  1. c++ 中double与string之间的转换,char *

    运行代码为 /* * main.cpp * * Created on: Apr 7, 2016 * Author: lizhen */ #include <iostream> //#inc ...

  2. Java GUI编程4---标签组件JLabel

    Java GUI编程4---标签组件JLabel 2018年06月11日 22:06:58 蓝蓝223 阅读数 12103更多 个人分类: Java书籍摘抄 所属专栏: Java Swing图形界面 ...

  3. PYTHON资源入口汇总

    Python资源入口汇总 官网 官方文档 教程和书籍 框架 数据库 模板 工具及第三方包 视频 书籍 博客 经典博文集合 社区 其他 整理中,进度30% 官网 入口 官方文档 英文 document ...

  4. 理解点击屏幕的事件响应--->对- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event方法的理解

    要理解这两个方法.先了解一下用户触摸屏幕后的事件传递过程. 当用户点击屏幕后,UIApplication 先响应事件,然后传递给UIWindow.如果window可以响应.就开始遍历window的su ...

  5. hashcode和equals方法

    转自https://www.cnblogs.com/keyi/p/7119825.html 一.equals方法的作用 1.默认情况(没有覆盖equals方法)下equals方法都是调用Object类 ...

  6. Java.io.File中的delete()方法和deleteOnExit()方法的区别

    1.delete()方法:             当调用delete()方法时,直接删除文件,不管该文件是否存在,一经调用立即执行: 2.deleteOnExit()方法:            当 ...

  7. 在npm当中发布自己的包的方法

    首先需要一个注册一个npm账号,注意,必须验证邮箱,不然是无法发布包的!下面是当时的报错 接着在你需要发布的包的文件夹下面打开你的cmd或者其他的命令行输入工具  输入  npm init 初始化你的 ...

  8. bzoj 1367 - sequence

    Description 给定一个序列\(t_1,t_2,\cdots,t_n\),求一个递增序列\(z_1<z_2<...<z_n\), 使得 \(R=|t_1−z_1|+|t_2− ...

  9. 【CF1043D】Mysterious Crime(贡献)

    题意:给定m个人,每个人有n个数字且每个人的所有数字都是一个n的排列,求有多少种方案去掉某个前缀和后缀后m个人剩余的部分相等 m<=10,n<=1e5 思路:考虑极长的一段连续匹配的串,因 ...

  10. ThreadPool基础之RegisterWaitForSingleObject

    原文发布时间为:2010-10-27 -- 来源于本人的百度文章 [由搬家工具导入] 首先我们看一下它的原型: Codepublic static RegisteredWaitHandle Regis ...