处理器设计师总是关注于不同的性能提升策略,为的是在每个时钟周期内完成尽可能多的计算。更快的频率、更大的数据路径以及不同的指令集方式都提升了性能。但是,性能提升最可能引起误解的一个方面就是超线程对处理器性能的影响。 超线程能够提升处理器效率已经得到了证实,但是其并不适用于所有场景,而且现代处理器设计可能会令超线程成为明日黄花。
超线程工作原理 传统的处理器队列指令在传输到处理器的执行引擎之前会通过流水线架构。应用设计以及需求差异总是会在处理器的指令管道中留有空隙,导致存在空闲的处理器时钟周期。糟糕的程序设计可能会浪费时钟周期并降低处理器性能。 为了优化处理器架构并提升多任务处理的可能性,处理器设……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
处理器设计师总是关注于不同的性能提升策略,为的是在每个时钟周期内完成尽可能多的计算。更快的频率、更大的数据路径以及不同的指令集方式都提升了性能。但是,性能提升最可能引起误解的一个方面就是超线程对处理器性能的影响。
超线程能够提升处理器效率已经得到了证实,但是其并不适用于所有场景,而且现代处理器设计可能会令超线程成为明日黄花。
超线程工作原理
传统的处理器队列指令在传输到处理器的执行引擎之前会通过流水线架构。应用设计以及需求差异总是会在处理器的指令管道中留有空隙,导致存在空闲的处理器时钟周期。糟糕的程序设计可能会浪费时钟周期并降低处理器性能。
为了优化处理器架构并提升多任务处理的可能性,处理器设计人员增加了与一级管道共享执行引擎的二级管道。设计人员想让第二个线程或者任务的相关指令在单个管道中排队,当第一个指令管道空闲时再通过执行核心运行这些指令。Intel开发了超线程技术,增强了计算机系统上的多线程并行处理。
在处理器核心中包括第二级指令管道,操作系统会识别到两个独立的处理器。能够将活动分解为单独任务的应用程序能够利用处理器超线程技术。单独的指令序列帮助处理器调度工作负载以有效地使用其指令引擎,这反过来提升了核心的计算能力。
然而,处理器核心仍旧只有一个执行引擎,因此超线程带来的性能提升取决于正在被调度的工作负载的设计与实现方式。性能改善从不会超过通过增加第二个核心所带来的提升,增加第二个核心通常会使处理器的计算资源成倍增加。
在实现超线程之前需要具备哪些条件
处理器、BIOS、操作系统以及工作负载构成了超线程服务器应具备的四大基本元素。当代大多数操作系统能够支持超线程: 2002年Intel在至强处理器中就引入了目前已经很完善的超线程技术,现在Itanium以及Atom处理器也支持超线程。
然而,处理器需要特定的软硬件元素,包括服务器主板对BIOS提供支持。超线程的成熟特性几乎保证了对BIOS的合理支持,通过设置BIOS允许系统技术人员启用超线程及相关的活动。
由于OS在指令队列中解析工作负载任务并处理任务调度,因此操作系统也必须支持超线程。目前,大多数企业级操作系统,包括Windows Server 2012以及SuSE和Red Hat Linux的某些新的发行版都支持HT和SMT。检查操作系统文档以确认HT支持所有数据中心平台。
最后,应用设计本身也影响超线程。设计为能够借助超线程优势的SMT应用要比只是部署在启用超线程服务器的应用性能更好。因为处理器版本、BIOS版本、OS版本以及应用设计都影响超线程,因此很难准确判断对性能有多大提升。
超线程如何影响虚拟服务器
超线程通常提升了单核处理器的性能,但不幸的是,处理器性能提升并不等于更不可能超越多核的性能优势。你无法基于核心或者插槽来选择启用或者禁用超线程,而且在某些情况下,超线程有可能会对处理器虚拟化带来不良影响。因此,很多管理员选择禁用超线程。
超线程技术增强了处理器组织及调度应用任务的方式,提升了性能。然而现代企业服务器至少使用有8到10个核心的多核处理器。在大多数情况下和超线程相比,可用的计算资源能够带来更好的性能提升。超线程还可能会对处理器虚拟化的方式带来不良印象。
例如,当启用超线程时虚拟化特性比如CPU关联性并非总是能够很好地运行。超线程在每个核心上创建了两个逻辑处理器,但是这些逻辑处理器仍旧共享物理核心的计算资源。因此,当虚拟机或者单个SMP虚拟机试图使用位于同一个物理核心上的vCPU时可能会发生资源争用,出现性能瓶颈。
实际上,服务器上可用的核心数量可能会导致超线程浪费计算资源。如果一台服务器包括4颗10核处理器,那么一共有40个核心,运行在Windows Server 2008 R2的Hyper-V服务器支持64个逻辑处理器。如果启用超线程,服务器将提供80个逻辑处理器,这样就有16颗逻辑处理器处于空闲状态,而且几乎浪费了整个处理器插槽。在这种情况下超线程带来的性能提升不会超过物理核心所增加的计算能力。
相关推荐
-
如何管理超融合系统中的虚拟机资源?
在一个典型的虚拟环境中,组织通常通过添加更多的硬件资源来停止资源争用。然而,在超融合基础设施中,这种方式是否适用将取决于你使用的是哪个供应商的解决方案。
-
单台虚拟机会引致虚拟化安全问题吗?
虚拟服务器和物理服务器一样,都需要做安全措施。从安全的角度看,系统管理员会认为虚拟机和物理服务器都是一样的安全。
-
花钱购买虚拟服务器时的注意事项
购买虚拟服务器时,如何让你的钱花在刀刃上?这里教你从访问速度、IIS连接数等多方面辨别服务器上是否无限制地开设了多个虚拟主机。
-
解析虚拟服务器结构和技术问题
如何在现有环境中集成一个虚拟服务器?文本主要讲解虚拟服务器在结构和技术两方面的问题以及虚拟服务器群设置和配置。