线程如何与CPU工作,为什么对系统性能至关重要

电子说

1.3w人已加入

描述

您对计算机了解一两件事。您几乎可以加快CPU的工作及其性能。而且您知道更多的线程意味着更好的性能。但是当涉及到它时,您实际上知道人们谈论线程时的含义吗?你知道他们是什么吗?你知道为什么它们很重要吗?今天,我们详细介绍了您需要了解的有关线程的所有信息。我们将讨论它们为何如此重要。我们将讨论它们如何与您的CPU一起工作。我们将详细说明它们的作用。继续阅读以了解有关CPU线程的更多信息,以及为什么它们对您的系统性能至关重要。

英特尔超线程技术可以将系统的处理性能提高多达30%。超线程从一个物理处理器核心创建两个逻辑处理器。它通过在每个内核上提供两组寄存器(称为体系结构状态)来实现。在Intel套接字上启用超线程后,每个内核上的第二个架构状态可以接受来自操作系统(或虚拟机管理程序)的线程。这两个线程仍将共享称为执行单元的内部微体系结构组件。这可以使单个套接字系统的处理性能提高多达30%。在双套接字系统中,超线程最多可提供15%的改进。如果性能调整在您的环境中至关重要,则在有无超线程的情况下测试性能都可能很重要。

超线程技术是Intel引入的一种同步多线程技术的形式,而该技术背后的概念已获得Sun Microsystems的专利。在架构上,采用超线程技术的处理器每个内核包含两个逻辑处理器,每个逻辑处理器都有自己的处理器架构状态。每个逻辑处理器可以独立于共享同一物理核心的其他逻辑处理器独立地暂停,中断或定向为执行指定线程。

与使用两个单独的物理处理器的传统双处理器配置不同,超线程内核中的逻辑处理器共享执行资源。这些资源包括执行引擎,缓存和系统总线接口。资源共享使两个逻辑处理器可以更有效地相互协作,并允许逻辑处理器从停滞的逻辑核心借用资源(假设两个逻辑核心都与同一物理核心相关联)。处理器在等待发送的数据时停顿,因此可以完成对当前线程的处理。使用超线程或多核处理器时看到的收益程度取决于软件的需求,以及软件和操作系统编写得如何有效地管理处理器。

超线程通过复制处理器的某些部分(存储体系结构状态的部分)来工作,但不复制主要执行资源。这使超线程处理器可以作为主机操作系统的常规“物理”处理器和额外的“ 逻辑 ”处理器出现(不知道HTT的操作系统请参阅两个“物理”处理器),从而允许操作系统调度两个线程或同时适当地处理。如果没有超线程,处理器中的当前任务将无法使用执行资源,尤其是当处理器停顿时,配备超线程的处理器可以使用那些执行资源来执行另一个计划任务。高速缓存未命中,分支预测错误或数据依赖性。)

该技术对操作系统和程序透明。充分利用超线程所需的最低要求是操作系统中的对称多处理(SMP)支持,因为逻辑处理器看起来像是标准的独立处理器。

可以在支持多处理器超线程的系统上优化操作系统行为。例如,考虑一个具有两个都是超线程的物理处理器的SMP系统(总共四个逻辑处理器)。如果操作系统的线程调度程序没有意识到超线程,它将对所有四个逻辑处理器相同。如果只有两个线程可以运行,则可以选择在恰好属于同一物理处理器的两个逻辑处理器上调度这些线程;该处理器将变得非常繁忙,而另一个处理器将处于空闲状态,从而导致性能比通过将线程调度到不同的物理处理器上时的性能差。通过改进调度程序来将逻辑处理器与物理处理器区别对待,可以避免此问题。从某种意义上说,这是NUMA系统所需的调度程序更改的一种有限形式。

线程的简要说明

所有中央处理单元都有线程,但这到底是什么意思?简而言之,线程就是使您的CPU一次执行多项任务的线程。因此,如果您要运行非常密集的多个进程,则将需要具有大量线程的CPU。

线程是指处理器执行的最高级别的代码,因此对于许多线程,您的CPU可以同时处理多个任务。所有CPU都有活动线程,并且计算机上执行的每个进程至少都有一个线程。

您拥有的线程数取决于CPU中的内核数。每个CPU内核可以具有两个线程。因此,具有两个内核的处理器将具有四个线程。具有八个核心的处理器将具有16个线程。

具有24个内核(是的,已经存在)的处理器将具有48个线程。

线程对计算机的功能很重要,因为线程决定了计算机在任何给定时间可以执行多少个任务。

我们将进一步深入讨论到底什么是线程,为什么需要了解它们的作用以及它们为何如此重要。

什么是中央处理单元?

在理解线程之前,您需要对CPU是什么有一个基本的了解。您必须先了解一个人的能力,才能理解其中一个人的功能。

CPU(中央处理器)是每台智能手机,平板电脑和计算机的核心。它是决定计算机性能并决定其性能的关键组件。

CPU接受您在计算机上命令的基本指令,并将这些作业分配给系统中的其他芯片。通过将复杂的任务转移到最适合处理这些任务的芯片上,它可使您的计算机以最高水平运行。

它是计算机的核心,如果没有它,计算机将无法运行。

CPU有时被称为计算机的大脑。它位于母板(也称为主威廉希尔官方网站 板)上,是与内存组件分开的组件。

它作用于内存组件,该内存组件存储系统上的所有数据和信息。内存组件和CPU与图形卡分开。显卡的唯一功能是获取数据并将其转换为您在显示器上看到的图像。

随着技术的逐年提高,我们看到CPU越来越小。而且他们的表现比以往更快。如果您对摩尔定律了解一两件事,就会了解这种更快的性能。

摩尔定律的名字来自英特尔联合创始人戈登·摩尔。摩尔的想法是,集成威廉希尔官方网站 中的晶体管数量每两年翻一番。

它不是物理学定律还是自然科学定律,这是由于每个集成威廉希尔官方网站 中组件数量的预计增长率所致。有关摩尔定律的完整说明,请单击此处。

CPU会做什么?

如前所述,CPU是计算机的大脑。它从特定程序或应用程序中获取数据,执行一系列计算,然后执行命令。它执行一个三部分的循环,否则称为获取,解码和执行的重复循环。

在第一阶段,CPU从系统内存中获取指令。一旦它具有来自存储器的指令,它将进入第二阶段。在第二阶段内,它对那些指令进行解码。

机器对指令进行解码后,便进入执行的第三阶段。

解码的信息通过CPU到达实际执行所需功能所需的单元。在解码过程中,它执行数学方程式以将所需的信号发送到您的系统。

对于您执行的每个动作和命令,此循环都会反复重复。在尖端的CPU技术中,CPU的组件不再自己做任何事情。

但是它们对于提供执行手头任务所需的专用硬件编号仍然至关重要。

CPU是任何系统的关键部分,它与线程协同工作。不同的CPU具有不同数量的线程,以限制或扩展计算机的性能。

什么是线程?

那么线程到底是什么?它们与您的CPU有何关系?它们如何影响系统的性能?让我们深入研究一下,确切地解释什么是线程,它们做什么以及为什么它们如此重要。

线程是一小段编程指令。线程是指处理器可以执行的最高级别的代码。

它们通常由调度程序管理,调度程序是任何操作系统的标准部分。

要创建线程,必须首先创建一个进程。完成后,该过程将创建一个线程,然后将其执行。根据过程的不同,时间可能短或长。

无论花费多长时间,这都会使您的计算机立即执行许多操作。

每个进程都有至少一个线程,但是一个进程没有最大线程数。对于特殊任务,您拥有的线程越多,计算机的性能就会越好。使用多个线程,单个进程可以同时处理各种任务。

您还将听到人们使用诸如“多线程”和“超线程”之类的术语。超线程技术允许单个CPU内核充当两个内核,从而加快了特定程序或应用程序的执行速度。

即使只有一个内核,它也可以像实际拥有两个内核一样模拟性能。您拥有的核心越多,您拥有的线程就越多。您拥有的线程越多,系统的性能就会越好。

如果您有双核CPU,则超线程将使其看起来好像您有四个。四核CPU将模拟八核的结果。CPU最初是用一个内核构建的。

但是现在,有了更多的内核和处理单元,您可以享受比以往更多的线程。更多的线程意味着更高的性能以及一次运行多个进程的能力。

线程和CPU如何一起工作?

为了更好地理解什么是线程,了解线程和CPU如何协同工作会很有帮助。我们说“线程”是为了简化想法,但是实际上,您应该将其视为“执行线程”。

您执行命令。您的CPU开始获取,解码和执行过程以实现该命令。线程是一系列指令,它们告诉您的计算机执行该命令必须执行的操作。

CPU执行您执行的命令进入前端的指令流。然后,CPU和线程一起工作以执行所需的功能。

它们协同工作以打开程序,使用应用程序,播放视频以及执行您要求计算机执行的所有操作。

当CPU和线程并排工作时,指令的来源无关紧要。您的处理器将确定哪个进程由CPU处理以及哪个线程由线程处理。

每次处理器加载新线程时,原始线程都会保存在主内存中。一旦从循环中删除了原始线程的指令,便可以开始一个新线程。然后,新线程开始进行三步获取,解码和执行过程的第一步。

超线程将提高多少处理性能?

根据多家服务器制造商的指导,我使用以下经验法则。对于单套接字系统,超线程可以将系统性能提高多达30%。对于双插槽系统,超线程可以将性能提高多达15%。对于四路(或更高)系统,建议在启用和不启用超线程的情况下进行性能测试。

在下图中,我们看到了一个使用英特尔®HT技术如何提高处理性能的示例。每个64位Intel Xeon处理器每个内核包含四个执行单元。禁用英特尔HT技术后,内核的执行只能在线程1或线程2的指令上进行。正如预期的那样,在许多时钟周期内,某些执行单元处于空闲状态。启用超线程后,执行单元可以同时处理线程1和线程2的指令。在此示例中,超线程将所需的时钟周期数从10减少到7。

幸运的是,现代操作系统和虚拟机管理程序都知道超线程,并将在物理内核之间平均加载活动线程。结果,已消除了启用超线程的性能调整多核系统的早期问题。但是,如果您的环境需要CPU亲和力,请查阅与您的操作系统或系统管理程序相关的文档。例如,适用于VMware vSphere 5.5的VMware Performance Best Practices指出:“在具有超线程的系统上使用CPU亲和力时要小心。由于两个逻辑处理器共享大多数处理器资源,因此将vCPU(无论是来自不同虚拟机还是来自单个SMP虚拟机)固定到一个内核上的两个逻辑处理器(例如,CPU 0和1)可能会导致性能下降。”

性能

了解超线程的性能改进所面临的最大挑战之一是监视工具如何报告处理器性能。让我们快速看一下Microsoft Windows和VMware vSphere如何报告CPU使用率。有关性能监视的详细信息很容易就可以填满几篇博客文章,因此,我们现在将这部分讨论简化。

Microsoft Windows通过计算逻辑处理器执行空闲线程的时间百分比(在报告间隔内)并从100%中减去该百分比来报告“处理器时间百分比”。由于Microsoft Windows支持超线程,因此当活动线程多于系统中的物理核心时,操作系统将仅在物理处理器核心上使用第二个体系结构状态。但是,Windows性能监视工具仍会将这两种体系结构状态报告为操作系统中的逻辑处理器。

现在,让我们结合这两个事实,看看启用超线程后性能报告如何变化。如果Windows服务器具有两个8核Intel Xeon处理器并且超线程被禁用,则性能监视器(PERFMON.EXE)将报告16个逻辑处理器。如果“ _Total”实例的“处理器时间百分比”始终在40%和50%之间,则每个时钟周期将执行6至8个活动线程(平均)。

如果我们在此服务器上启用超线程,则Windows现在将报告32个逻辑处理器(每个物理核心两个逻辑处理器)。由于Windows支持超线程,因此,每个物理核心仍将(平均)将6到8个活动线程分配给一个活动线程,并且每个核心上的第二种架构状态将在很大程度上未使用。在此示例中,启用超线程既没有改善也没有削弱系统性能。但是,性能监视器现在平均在32个逻辑处理器中平均有6-8个活动线程。结果,%Processor Time值减少了一半。因此,启用超线程似乎使系统性能提高了一倍!不幸的是,(如前所述)每个内核上的第二个架构状态必须与第一个架构状态共享微架构组件。

因此,使用Windows Performance Monitor工具时,请务必记住,CPU负载为0%-50%时,系统不会定期利用超线程。同样,从50%-100%开始的旅程比从0%-50%开始的距离短很多。

现代管理程序(例如VMware ESXi 5.x)具有超线程意识。VMware指出:“ ESXi主机智能地管理处理器时间,以确保负载在系统中的处理器核心之间平稳地分布。虚拟机优先安排在两个不同的核心上,而不是在同一核心上的两个逻辑处理器上进行调度。” (来源:通过VMWare提供的 “ vSphere资源管理,ESXi 5.5 vCenter Server 5.5。”

作为最佳实践,VMware建议启用超线程。VMware在针对ESXi 4.x和5.x的性能最佳实践白皮书中指出:“…超线程可通过保持处理器流水线繁忙而提供从轻微到显着的系统性能提升。” (来源:http://bit.ly/1hMAir4,http://bit.ly/1muhaOA,http://bit.ly/1dVMe99)

在VMware中,CPU资源通常以兆赫(MHz)报告。CPU使用率的三个关键指标是“ usagemhz”,“ totalmhz”和“ usage”。指标的特定定义会根据上下文是VMware vSphere数据中心,群集,资源池,主机还是虚拟机而变化。这是这三个指标的一般描述。

usagemhz:度量(以MHz为单位)计算消耗的资源

总数mhz:度量(以MHz为单位)计算可用资源的使用

情况:报告(以百分比表示)usemhz除以totalmhz

ESXi主机的Totalmhz通过将主机中物理核心的数量乘以这些核心的时钟速度来计算。下面是对两台双路服务器的计算的演示-一台使用Intel Xeon 2695v2处理器,另一台使用AMD Opteron 6376处理器。

英特尔

VMware容量计算未考虑超线程的潜在好处,因此可能会低估主机的CPU性能。

Usagemhz表示上下文中的活动CPU使用率。使用率以百分比报告,通过将Usagemhz除以totalmhz来计算。

什么时候超线程不是一个好主意?

有时,超线程不利于系统性能。在极端情况下,启用超线程可能会降低系统性能。下面是环境的简要列表,在这些环境中,超线程可能只会带来很少的改善甚至没有改善。如果您的环境包括满足这些条件的系统,则建议在启用和不启用超线程的情况下测试系统性能。

在以下情况下应测试超线程:

服务器有两个以上的套接字,

该服务器具有大量的物理核心,

操作系统不支持超线程(例如:Windows Server 2003),

该应用程序是单线程的,或者没有有效地处理多个线程,

该应用程序已经被设计成可以最大程度地利用每个内核中的执行单元,

或者该应用程序具有很高的内存I / O率。

简单而粗糙的比较

正如所承诺的,这是一种比较有无超线程的CPU性能的简化且非常粗糙的方法。该模型没有考虑许多其他可以改善系统性能的重要因素,例如处理器缓存,处理器生成,硬件虚拟化辅助,内存速度等因素。因此,如果要使用此模型,请记住它提供了CPU的后台,非常简化,非常粗糙的比较。

利用VMware模型以MHz为单位计算CPU容量,我们将添加“超线程因子”。对于单插槽系统,我使用的超线程系数为“最高1.3”,而对于双插槽系统,则为“最高1.15”。考虑到这一点,让我们重新计算Intel Xeon 2695v2和AMD Opteron 6376处理器的处理器性能。在本练习中,处理器将安装在双路服务器中。

英特尔

如我们所见,具有超线程功能的Intel Xeon 2695v2可以将系统性能从57,600MHz提升到“高达” 66,240MHz。根据环境的不同,这种15%的潜在改善可能会很明显。

一般来说,超线程是一件好事。许多制造商建议将超线程作为最佳实践准则的一部分。实际上,许多管理员使用超线程已经很多年了,没有发生任何意外。但是,正如我们所看到的,超线程是一项“您的里程可能会有所不同”的技术。

自从2002年首次发布以来,超线程已经走了很长一段路。大部分的改进归功于对操作系统和虚拟机管理程序的超线程支持的改进。如果您属于早期因超线程而烧毁的人,我邀请您再次尝试。

英特尔超线程技术可潜在改善系统性能,并且可能已在您已有的硬件中提供。

哪些CPU的线程最多?

既然您对线程了解了一两件事,那么您很可能会想“我希望有更多线程的更快的CPU”。但是,如何确定购买的线程足以提供所需的功能和性能的CPU?

我们汇总了市场上几种高性能CPU的清单,以及将于2018年发布的一些CPU。迄今为止,这些CPU提供了一些最佳性能和最多线程数。

英特尔酷睿i9-7980XE Extreme

18个内核意味着36个线程,这使 Intel Core i9-7980XE Extreme成为市场上最快,最强大的处理器之一。它拥有24.74 MB缓存,2.60 GHz时钟速度和4.20 GHz最大Turbo频率。

英特尔酷睿i9-7960X

16核,32线程和4.20 GHz的最大睿频频率使 Intel Core i9-7960X成为最受欢迎的产品。凭借2.80 GHz的时钟速度和22 MB的缓存,如果您正在寻找功率和性能,它是一个绝佳的选择。

AMD锐龙Threadripper 1950x

在AMD Ryzen Threadripper 1950x配备16个内核,该CPU拥有32个线程,4.0千兆赫的升压时钟,和32 MB的L3高速缓存。许多用户认为它比具有Intel Core i9的同类CPU更灵活。

英特尔酷睿i9-7940X

英特尔酷睿i9-7940X具有14个内核和28个线程,其 最大睿频频率为4.30 GHz,最大时钟速度为3.10 GHz。它是众多性能卓越的强大Intel Core i9 CPU之一。

英特尔至强白金系列

如果您想要最好的处理器和最多数量的线程,请查看Intel Xeon Platinum系列。众所周知,英特尔CPU是业界最好的CPU。

白金8176,8176F,和8180种型号都拥有28个核心56个线程。Platinum 8164和8170具有26个内核和52个线程。如果这是更高的性能比你的需要,白金8160,8168,8160T,以及8160F拥有区区24个核心与48成一线。

英特尔®至强®处理器的性能肯定会令人印象深刻,但是您必须为这些野兽付出大笔费用。(8180型号目前在亚马逊上的标价为8,999美元)。

普通用户通常对线程不了解很多,也不在乎,也不花时间去理解他们的工作或为什么重要。而且,如果您通常只在计算机上运行一个程序,那就完全可以了。但是,如果您想确切了解计算机的运行方式,那么了解线程是关键。

要了解线程,您首先必须知道什么是CPU和CPU做什么。您需要对获取,解码和执行周期有所了解。但是最重要的是,线程会影响计算机同时执行多条指令的速度和效率。

在Windows中,所有线程都会在一段时间内处于活动状态。某些CPU具有带有超线程的多个线程,这些线程模仿您实际拥有的CPU核心数量的两倍。

通过多个线程,即使是单个处理器也可以同时执行各种任务。

要使系统正常运行,您需要合适的CPU和合适数量的线程。它们在一起是使计算机正常运行的关键要素。

您需要CPU为其他组件供电,并向计算机的正确组件发送指令。您需要线程一次执行许多功能,并使计算机高效运行。

没有这两个元素,您将根本看不到任何性能。

如果要确保CPU提供足够的线程,请进行研究以了解不同之处并了解各种CPU的功能。比较成本,比较功能和比较性能。

阅读来自实际用户的评论,以便您知道对CPU或计划购买的任何新CPU有什么期望。

花一些时间做研究。花时间阅读评论。比较价格和功能,以了解所获得的收益。

如果您做作业,您会发现具有足够线程的CPU可以提供所需的性能。

责任编辑:gt

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分