您對計算機了解一兩件事。您幾乎可以加快CPU的工作及其性能。而且您知道更多的線程意味著更好的性能。但是當涉及到它時,您實際上知道人們談論線程時的含義嗎?你知道他們是什么嗎?你知道為什么它們很重要嗎?今天,我們詳細介紹了您需要了解的有關線程的所有信息。我們將討論它們?yōu)楹稳绱酥匾?。我們將討論它們?nèi)绾闻c您的CPU一起工作。我們將詳細說明它們的作用。繼續(xù)閱讀以了解有關CPU線程的更多信息,以及為什么它們對您的系統(tǒng)性能至關重要。
英特爾超線程技術可以將系統(tǒng)的處理性能提高多達30%。超線程從一個物理處理器核心創(chuàng)建兩個邏輯處理器。它通過在每個內(nèi)核上提供兩組寄存器(稱為體系結(jié)構狀態(tài))來實現(xiàn)。在Intel套接字上啟用超線程后,每個內(nèi)核上的第二個架構狀態(tài)可以接受來自操作系統(tǒng)(或虛擬機管理程序)的線程。這兩個線程仍將共享稱為執(zhí)行單元的內(nèi)部微體系結(jié)構組件。這可以使單個套接字系統(tǒng)的處理性能提高多達30%。在雙套接字系統(tǒng)中,超線程最多可提供15%的改進。如果性能調(diào)整在您的環(huán)境中至關重要,則在有無超線程的情況下測試性能都可能很重要。
超線程技術是Intel引入的一種同步多線程技術的形式,而該技術背后的概念已獲得Sun Microsystems的專利。在架構上,采用超線程技術的處理器每個內(nèi)核包含兩個邏輯處理器,每個邏輯處理器都有自己的處理器架構狀態(tài)。每個邏輯處理器可以獨立于共享同一物理核心的其他邏輯處理器獨立地暫停,中斷或定向為執(zhí)行指定線程。
與使用兩個單獨的物理處理器的傳統(tǒng)雙處理器配置不同,超線程內(nèi)核中的邏輯處理器共享執(zhí)行資源。這些資源包括執(zhí)行引擎,緩存和系統(tǒng)總線接口。資源共享使兩個邏輯處理器可以更有效地相互協(xié)作,并允許邏輯處理器從停滯的邏輯核心借用資源(假設兩個邏輯核心都與同一物理核心相關聯(lián))。處理器在等待發(fā)送的數(shù)據(jù)時停頓,因此可以完成對當前線程的處理。使用超線程或多核處理器時看到的收益程度取決于軟件的需求,以及軟件和操作系統(tǒng)編寫得如何有效地管理處理器。
超線程通過復制處理器的某些部分(存儲體系結(jié)構狀態(tài)的部分)來工作,但不復制主要執(zhí)行資源。這使超線程處理器可以作為主機操作系統(tǒng)的常規(guī)“物理”處理器和額外的“ 邏輯 ”處理器出現(xiàn)(不知道HTT的操作系統(tǒng)請參閱兩個“物理”處理器),從而允許操作系統(tǒng)調(diào)度兩個線程或同時適當?shù)靥幚怼H绻麤]有超線程,處理器中的當前任務將無法使用執(zhí)行資源,尤其是當處理器停頓時,配備超線程的處理器可以使用那些執(zhí)行資源來執(zhí)行另一個計劃任務。高速緩存未命中,分支預測錯誤或數(shù)據(jù)依賴性。)
該技術對操作系統(tǒng)和程序透明。充分利用超線程所需的最低要求是操作系統(tǒng)中的對稱多處理(SMP)支持,因為邏輯處理器看起來像是標準的獨立處理器。
可以在支持多處理器超線程的系統(tǒng)上優(yōu)化操作系統(tǒng)行為。例如,考慮一個具有兩個都是超線程的物理處理器的SMP系統(tǒng)(總共四個邏輯處理器)。如果操作系統(tǒng)的線程調(diào)度程序沒有意識到超線程,它將對所有四個邏輯處理器相同。如果只有兩個線程可以運行,則可以選擇在恰好屬于同一物理處理器的兩個邏輯處理器上調(diào)度這些線程;該處理器將變得非常繁忙,而另一個處理器將處于空閑狀態(tài),從而導致性能比通過將線程調(diào)度到不同的物理處理器上時的性能差。通過改進調(diào)度程序來將邏輯處理器與物理處理器區(qū)別對待,可以避免此問題。從某種意義上說,這是NUMA系統(tǒng)所需的調(diào)度程序更改的一種有限形式。
線程的簡要說明
所有中央處理單元都有線程,但這到底是什么意思?簡而言之,線程就是使您的CPU一次執(zhí)行多項任務的線程。因此,如果您要運行非常密集的多個進程,則將需要具有大量線程的CPU。
線程是指處理器執(zhí)行的最高級別的代碼,因此對于許多線程,您的CPU可以同時處理多個任務。所有CPU都有活動線程,并且計算機上執(zhí)行的每個進程至少都有一個線程。
您擁有的線程數(shù)取決于CPU中的內(nèi)核數(shù)。每個CPU內(nèi)核可以具有兩個線程。因此,具有兩個內(nèi)核的處理器將具有四個線程。具有八個核心的處理器將具有16個線程。
具有24個內(nèi)核(是的,已經(jīng)存在)的處理器將具有48個線程。
線程對計算機的功能很重要,因為線程決定了計算機在任何給定時間可以執(zhí)行多少個任務。
我們將進一步深入討論到底什么是線程,為什么需要了解它們的作用以及它們?yōu)楹稳绱酥匾?/p>
什么是中央處理單元?
在理解線程之前,您需要對CPU是什么有一個基本的了解。您必須先了解一個人的能力,才能理解其中一個人的功能。
CPU(中央處理器)是每臺智能手機,平板電腦和計算機的核心。它是決定計算機性能并決定其性能的關鍵組件。
CPU接受您在計算機上命令的基本指令,并將這些作業(yè)分配給系統(tǒng)中的其他芯片。通過將復雜的任務轉(zhuǎn)移到最適合處理這些任務的芯片上,它可使您的計算機以最高水平運行。
它是計算機的核心,如果沒有它,計算機將無法運行。
CPU有時被稱為計算機的大腦。它位于母板(也稱為主電路板)上,是與內(nèi)存組件分開的組件。
它作用于內(nèi)存組件,該內(nèi)存組件存儲系統(tǒng)上的所有數(shù)據(jù)和信息。內(nèi)存組件和CPU與圖形卡分開。顯卡的唯一功能是獲取數(shù)據(jù)并將其轉(zhuǎn)換為您在顯示器上看到的圖像。
隨著技術的逐年提高,我們看到CPU越來越小。而且他們的表現(xiàn)比以往更快。如果您對摩爾定律了解一兩件事,就會了解這種更快的性能。
摩爾定律的名字來自英特爾聯(lián)合創(chuàng)始人戈登·摩爾。摩爾的想法是,集成電路中的晶體管數(shù)量每兩年翻一番。
它不是物理學定律還是自然科學定律,這是由于每個集成電路中組件數(shù)量的預計增長率所致。有關摩爾定律的完整說明,請單擊此處。
CPU會做什么?
如前所述,CPU是計算機的大腦。它從特定程序或應用程序中獲取數(shù)據(jù),執(zhí)行一系列計算,然后執(zhí)行命令。它執(zhí)行一個三部分的循環(huán),否則稱為獲取,解碼和執(zhí)行的重復循環(huán)。
在第一階段,CPU從系統(tǒng)內(nèi)存中獲取指令。一旦它具有來自存儲器的指令,它將進入第二階段。在第二階段內(nèi),它對那些指令進行解碼。
機器對指令進行解碼后,便進入執(zhí)行的第三階段。
解碼的信息通過CPU到達實際執(zhí)行所需功能所需的單元。在解碼過程中,它執(zhí)行數(shù)學方程式以將所需的信號發(fā)送到您的系統(tǒng)。
對于您執(zhí)行的每個動作和命令,此循環(huán)都會反復重復。在尖端的CPU技術中,CPU的組件不再自己做任何事情。
但是它們對于提供執(zhí)行手頭任務所需的專用硬件編號仍然至關重要。
CPU是任何系統(tǒng)的關鍵部分,它與線程協(xié)同工作。不同的CPU具有不同數(shù)量的線程,以限制或擴展計算機的性能。
什么是線程?
那么線程到底是什么?它們與您的CPU有何關系?它們?nèi)绾斡绊懴到y(tǒng)的性能?讓我們深入研究一下,確切地解釋什么是線程,它們做什么以及為什么它們?nèi)绱酥匾?/p>
線程是一小段編程指令。線程是指處理器可以執(zhí)行的最高級別的代碼。
它們通常由調(diào)度程序管理,調(diào)度程序是任何操作系統(tǒng)的標準部分。
要創(chuàng)建線程,必須首先創(chuàng)建一個進程。完成后,該過程將創(chuàng)建一個線程,然后將其執(zhí)行。根據(jù)過程的不同,時間可能短或長。
無論花費多長時間,這都會使您的計算機立即執(zhí)行許多操作。
每個進程都有至少一個線程,但是一個進程沒有最大線程數(shù)。對于特殊任務,您擁有的線程越多,計算機的性能就會越好。使用多個線程,單個進程可以同時處理各種任務。
您還將聽到人們使用諸如“多線程”和“超線程”之類的術語。超線程技術允許單個CPU內(nèi)核充當兩個內(nèi)核,從而加快了特定程序或應用程序的執(zhí)行速度。
即使只有一個內(nèi)核,它也可以像實際擁有兩個內(nèi)核一樣模擬性能。您擁有的核心越多,您擁有的線程就越多。您擁有的線程越多,系統(tǒng)的性能就會越好。
如果您有雙核CPU,則超線程將使其看起來好像您有四個。四核CPU將模擬八核的結(jié)果。CPU最初是用一個內(nèi)核構建的。
但是現(xiàn)在,有了更多的內(nèi)核和處理單元,您可以享受比以往更多的線程。更多的線程意味著更高的性能以及一次運行多個進程的能力。
線程和CPU如何一起工作?
為了更好地理解什么是線程,了解線程和CPU如何協(xié)同工作會很有幫助。我們說“線程”是為了簡化想法,但是實際上,您應該將其視為“執(zhí)行線程”。
您執(zhí)行命令。您的CPU開始獲取,解碼和執(zhí)行過程以實現(xiàn)該命令。線程是一系列指令,它們告訴您的計算機執(zhí)行該命令必須執(zhí)行的操作。
CPU執(zhí)行您執(zhí)行的命令進入前端的指令流。然后,CPU和線程一起工作以執(zhí)行所需的功能。
它們協(xié)同工作以打開程序,使用應用程序,播放視頻以及執(zhí)行您要求計算機執(zhí)行的所有操作。
當CPU和線程并排工作時,指令的來源無關緊要。您的處理器將確定哪個進程由CPU處理以及哪個線程由線程處理。
每次處理器加載新線程時,原始線程都會保存在主內(nèi)存中。一旦從循環(huán)中刪除了原始線程的指令,便可以開始一個新線程。然后,新線程開始進行三步獲取,解碼和執(zhí)行過程的第一步。
超線程將提高多少處理性能?
根據(jù)多家服務器制造商的指導,我使用以下經(jīng)驗法則。對于單套接字系統(tǒng),超線程可以將系統(tǒng)性能提高多達30%。對于雙插槽系統(tǒng),超線程可以將性能提高多達15%。對于四路(或更高)系統(tǒng),建議在啟用和不啟用超線程的情況下進行性能測試。
在下圖中,我們看到了一個使用英特爾?HT技術如何提高處理性能的示例。每個64位Intel Xeon處理器每個內(nèi)核包含四個執(zhí)行單元。禁用英特爾HT技術后,內(nèi)核的執(zhí)行只能在線程1或線程2的指令上進行。正如預期的那樣,在許多時鐘周期內(nèi),某些執(zhí)行單元處于空閑狀態(tài)。啟用超線程后,執(zhí)行單元可以同時處理線程1和線程2的指令。在此示例中,超線程將所需的時鐘周期數(shù)從10減少到7。
幸運的是,現(xiàn)代操作系統(tǒng)和虛擬機管理程序都知道超線程,并將在物理內(nèi)核之間平均加載活動線程。結(jié)果,已消除了啟用超線程的性能調(diào)整多核系統(tǒng)的早期問題。但是,如果您的環(huán)境需要CPU親和力,請查閱與您的操作系統(tǒng)或系統(tǒng)管理程序相關的文檔。例如,適用于VMware vSphere 5.5的VMware Performance Best Practices指出:“在具有超線程的系統(tǒng)上使用CPU親和力時要小心。由于兩個邏輯處理器共享大多數(shù)處理器資源,因此將vCPU(無論是來自不同虛擬機還是來自單個SMP虛擬機)固定到一個內(nèi)核上的兩個邏輯處理器(例如,CPU 0和1)可能會導致性能下降。”
性能
了解超線程的性能改進所面臨的最大挑戰(zhàn)之一是監(jiān)視工具如何報告處理器性能。讓我們快速看一下Microsoft Windows和VMware vSphere如何報告CPU使用率。有關性能監(jiān)視的詳細信息很容易就可以填滿幾篇博客文章,因此,我們現(xiàn)在將這部分討論簡化。
Microsoft Windows通過計算邏輯處理器執(zhí)行空閑線程的時間百分比(在報告間隔內(nèi))并從100%中減去該百分比來報告“處理器時間百分比”。由于Microsoft Windows支持超線程,因此當活動線程多于系統(tǒng)中的物理核心時,操作系統(tǒng)將僅在物理處理器核心上使用第二個體系結(jié)構狀態(tài)。但是,Windows性能監(jiān)視工具仍會將這兩種體系結(jié)構狀態(tài)報告為操作系統(tǒng)中的邏輯處理器。
現(xiàn)在,讓我們結(jié)合這兩個事實,看看啟用超線程后性能報告如何變化。如果Windows服務器具有兩個8核Intel Xeon處理器并且超線程被禁用,則性能監(jiān)視器(PERFMON.EXE)將報告16個邏輯處理器。如果“ _Total”實例的“處理器時間百分比”始終在40%和50%之間,則每個時鐘周期將執(zhí)行6至8個活動線程(平均)。
如果我們在此服務器上啟用超線程,則Windows現(xiàn)在將報告32個邏輯處理器(每個物理核心兩個邏輯處理器)。由于Windows支持超線程,因此,每個物理核心仍將(平均)將6到8個活動線程分配給一個活動線程,并且每個核心上的第二種架構狀態(tài)將在很大程度上未使用。在此示例中,啟用超線程既沒有改善也沒有削弱系統(tǒng)性能。但是,性能監(jiān)視器現(xiàn)在平均在32個邏輯處理器中平均有6-8個活動線程。結(jié)果,%Processor Time值減少了一半。因此,啟用超線程似乎使系統(tǒng)性能提高了一倍!不幸的是,(如前所述)每個內(nèi)核上的第二個架構狀態(tài)必須與第一個架構狀態(tài)共享微架構組件。
因此,使用Windows Performance Monitor工具時,請務必記住,CPU負載為0%-50%時,系統(tǒng)不會定期利用超線程。同樣,從50%-100%開始的旅程比從0%-50%開始的距離短很多。
現(xiàn)代管理程序(例如VMware ESXi 5.x)具有超線程意識。VMware指出:“ ESXi主機智能地管理處理器時間,以確保負載在系統(tǒng)中的處理器核心之間平穩(wěn)地分布。虛擬機優(yōu)先安排在兩個不同的核心上,而不是在同一核心上的兩個邏輯處理器上進行調(diào)度。” (來源:通過VMWare提供的 “ vSphere資源管理,ESXi 5.5 vCenter Server 5.5?!?/p>
作為最佳實踐,VMware建議啟用超線程。VMware在針對ESXi 4.x和5.x的性能最佳實踐白皮書中指出:“…超線程可通過保持處理器流水線繁忙而提供從輕微到顯著的系統(tǒng)性能提升。” (來源:http://bit.ly/1hMAir4,http://bit.ly/1muhaOA,http://bit.ly/1dVMe99)
在VMware中,CPU資源通常以兆赫(MHz)報告。CPU使用率的三個關鍵指標是“ usagemhz”,“ totalmhz”和“ usage”。指標的特定定義會根據(jù)上下文是VMware vSphere數(shù)據(jù)中心,群集,資源池,主機還是虛擬機而變化。這是這三個指標的一般描述。
usagemhz:度量(以MHz為單位)計算消耗的資源
總數(shù)mhz:度量(以MHz為單位)計算可用資源的使用
情況:報告(以百分比表示)usemhz除以totalmhz
ESXi主機的Totalmhz通過將主機中物理核心的數(shù)量乘以這些核心的時鐘速度來計算。下面是對兩臺雙路服務器的計算的演示-一臺使用Intel Xeon 2695v2處理器,另一臺使用AMD Opteron 6376處理器。
VMware容量計算未考慮超線程的潛在好處,因此可能會低估主機的CPU性能。
Usagemhz表示上下文中的活動CPU使用率。使用率以百分比報告,通過將Usagemhz除以totalmhz來計算。
什么時候超線程不是一個好主意?
有時,超線程不利于系統(tǒng)性能。在極端情況下,啟用超線程可能會降低系統(tǒng)性能。下面是環(huán)境的簡要列表,在這些環(huán)境中,超線程可能只會帶來很少的改善甚至沒有改善。如果您的環(huán)境包括滿足這些條件的系統(tǒng),則建議在啟用和不啟用超線程的情況下測試系統(tǒng)性能。
在以下情況下應測試超線程:
服務器有兩個以上的套接字,
該服務器具有大量的物理核心,
操作系統(tǒng)不支持超線程(例如:Windows Server 2003),
該應用程序是單線程的,或者沒有有效地處理多個線程,
該應用程序已經(jīng)被設計成可以最大程度地利用每個內(nèi)核中的執(zhí)行單元,
或者該應用程序具有很高的內(nèi)存I / O率。
簡單而粗糙的比較
正如所承諾的,這是一種比較有無超線程的CPU性能的簡化且非常粗糙的方法。該模型沒有考慮許多其他可以改善系統(tǒng)性能的重要因素,例如處理器緩存,處理器生成,硬件虛擬化輔助,內(nèi)存速度等因素。因此,如果要使用此模型,請記住它提供了CPU的后臺,非常簡化,非常粗糙的比較。
利用VMware模型以MHz為單位計算CPU容量,我們將添加“超線程因子”。對于單插槽系統(tǒng),我使用的超線程系數(shù)為“最高1.3”,而對于雙插槽系統(tǒng),則為“最高1.15”??紤]到這一點,讓我們重新計算Intel Xeon 2695v2和AMD Opteron 6376處理器的處理器性能。在本練習中,處理器將安裝在雙路服務器中。
如我們所見,具有超線程功能的Intel Xeon 2695v2可以將系統(tǒng)性能從57,600MHz提升到“高達” 66,240MHz。根據(jù)環(huán)境的不同,這種15%的潛在改善可能會很明顯。
一般來說,超線程是一件好事。許多制造商建議將超線程作為最佳實踐準則的一部分。實際上,許多管理員使用超線程已經(jīng)很多年了,沒有發(fā)生任何意外。但是,正如我們所看到的,超線程是一項“您的里程可能會有所不同”的技術。
自從2002年首次發(fā)布以來,超線程已經(jīng)走了很長一段路。大部分的改進歸功于對操作系統(tǒng)和虛擬機管理程序的超線程支持的改進。如果您屬于早期因超線程而燒毀的人,我邀請您再次嘗試。
英特爾超線程技術可潛在改善系統(tǒng)性能,并且可能已在您已有的硬件中提供。
哪些CPU的線程最多?
既然您對線程了解了一兩件事,那么您很可能會想“我希望有更多線程的更快的CPU”。但是,如何確定購買的線程足以提供所需的功能和性能的CPU?
我們匯總了市場上幾種高性能CPU的清單,以及將于2018年發(fā)布的一些CPU。迄今為止,這些CPU提供了一些最佳性能和最多線程數(shù)。
英特爾酷睿i9-7980XE Extreme
18個內(nèi)核意味著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成為最受歡迎的產(chǎn)品。憑借2.80 GHz的時鐘速度和22 MB的緩存,如果您正在尋找功率和性能,它是一個絕佳的選擇。
AMD銳龍Threadripper 1950x
在AMD Ryzen Threadripper 1950x配備16個內(nèi)核,該CPU擁有32個線程,4.0千兆赫的升壓時鐘,和32 MB的L3高速緩存。許多用戶認為它比具有Intel Core i9的同類CPU更靈活。
英特爾酷睿i9-7940X
英特爾酷睿i9-7940X具有14個內(nèi)核和28個線程,其 最大睿頻頻率為4.30 GHz,最大時鐘速度為3.10 GHz。它是眾多性能卓越的強大Intel Core i9 CPU之一。
英特爾至強白金系列
如果您想要最好的處理器和最多數(shù)量的線程,請查看Intel Xeon Platinum系列。眾所周知,英特爾CPU是業(yè)界最好的CPU。
白金8176,8176F,和8180種型號都擁有28個核心56個線程。Platinum 8164和8170具有26個內(nèi)核和52個線程。如果這是更高的性能比你的需要,白金8160,8168,8160T,以及8160F擁有區(qū)區(qū)24個核心與48成一線。
英特爾?至強?處理器的性能肯定會令人印象深刻,但是您必須為這些野獸付出大筆費用。(8180型號目前在亞馬遜上的標價為8,999美元)。
普通用戶通常對線程不了解很多,也不在乎,也不花時間去理解他們的工作或為什么重要。而且,如果您通常只在計算機上運行一個程序,那就完全可以了。但是,如果您想確切了解計算機的運行方式,那么了解線程是關鍵。
要了解線程,您首先必須知道什么是CPU和CPU做什么。您需要對獲取,解碼和執(zhí)行周期有所了解。但是最重要的是,線程會影響計算機同時執(zhí)行多條指令的速度和效率。
在Windows中,所有線程都會在一段時間內(nèi)處于活動狀態(tài)。某些CPU具有帶有超線程的多個線程,這些線程模仿您實際擁有的CPU核心數(shù)量的兩倍。
通過多個線程,即使是單個處理器也可以同時執(zhí)行各種任務。
要使系統(tǒng)正常運行,您需要合適的CPU和合適數(shù)量的線程。它們在一起是使計算機正常運行的關鍵要素。
您需要CPU為其他組件供電,并向計算機的正確組件發(fā)送指令。您需要線程一次執(zhí)行許多功能,并使計算機高效運行。
沒有這兩個元素,您將根本看不到任何性能。
如果要確保CPU提供足夠的線程,請進行研究以了解不同之處并了解各種CPU的功能。比較成本,比較功能和比較性能。
閱讀來自實際用戶的評論,以便您知道對CPU或計劃購買的任何新CPU有什么期望。
花一些時間做研究?;〞r間閱讀評論。比較價格和功能,以了解所獲得的收益。
如果您做作業(yè),您會發(fā)現(xiàn)具有足夠線程的CPU可以提供所需的性能。
責任編輯:gt
-
英特爾
+關注
關注
61文章
9964瀏覽量
171784 -
cpu
+關注
關注
68文章
10863瀏覽量
211778 -
線程
+關注
關注
0文章
504瀏覽量
19684
發(fā)布評論請先 登錄
相關推薦
評論