問題 使用超執行緒技術可能對系統造成哪些負面影響?

2021-09-23 11:20:46 字數 1292 閱讀 3639

超執行緒技術能夠在很大程度上幫助系統管理員提公升處理器效能表現,但是管理員還是應該注意使用這種技術的最終結果可能難以**。

問題:使用超執行緒技術可能對系統造成哪些負面影響?

新手系統管理員最常犯的錯誤之一就是認為使用超執行緒技術與新增乙個全新核心是一樣的——但實際情況並非如此。超執行緒技術並不會為處理器核心增加任何額外計算資源,只是允許不同任務共享核心的現有計算資源而已。如果處理器使用率相對較低,擁有充足的空閒時間,那麼這種方式能夠大幅度提公升系統的效能表現。新增加的執行緒通過執行額外任務能夠有效利用核心空閒時間,這樣處理器——以及整個系統——就能夠在同樣的時間段內完成更多的任務。

但是超執行緒技術並非總是能夠起到幫助作用。比如,超執行緒技術的成功需要依賴於合適的排程系統,只有windows server 2016這樣的全新一代作業系統才具有這種特性。即便底層硬體處理器能夠支援超執行緒,並且在系統bios中已經啟用這種特性,但是像windows server 2013這樣的作業系統並不能識別超執行緒。此外,超執行緒技術能夠帶來的效能提公升會隨著核心數量的增加而逐漸降低。比如,借助於超執行緒技術,單核系統最多能夠實現30%的效能提公升,而雙核系統通常最多只能實現15%的效能提公升。而四核——或者更多核心——的處理器需要在啟用和關閉超執行緒的情況下分別進行測試,才能夠最終確定效能表現。但是既然已經擁有了多個物理核心,那麼同時使用多個核心比使用超執行緒技術要更加高效。

在hypervisor中啟用cpu affinity特性也需要十分小心。如果啟用超執行緒技術,hypervisor能夠在系統的物理和邏輯核心之間提供良好的執行緒排程和自動負載均衡功能。啟用cpu affinity特性將會對hypervisor的排程和負載均衡能力造成影響,導致系統不能提供最好的效能表現。cpu affinity特性還會對cpu針對特定虛擬機器進行資源預留的能力造成影響。即便cpu affinity特性在當前伺服器上能夠發揮其作用,如果將虛擬機器遷移到不同處理器數量的其他伺服器上,也會對cpu affinity特性造成嚴重影響,因此最好讓hypervisor或者作業系統自動進行配置。

最後,不要忽略負載自身的特性。使用多個邏輯處理器並不會對單執行緒負載帶來任何幫助作用,因此超執行緒技術無法提公升這些負載的效能表現。此外,需要占用大量計算資源以及需要和記憶體進行大量資料傳輸——也就是占用大量記憶體i/o——的負載也無法受益於超執行緒技術。因此需要在了解常駐記憶體負載的特性之後再決定是否使用超執行緒技術,或者將負載遷移到其他啟用(未啟用)超執行緒技術的系統上。

超執行緒技術允許不同任務共享處理器核心的空閒計算資源。使用這種方式,管理員無需購買或者新增/公升級處理器,使用現有處理器就能夠完成更多的任務。但是這種技術並非適用於任何硬體或者負載。在評估全新負載的效能和遷移特性過程中,考慮超執行緒技術所帶來的影響,並且在必要的時候禁用超執行緒技術。

CPU超執行緒技術

超執行緒簡單來說就是可以提供核心利用率的東西,將閒置的核心充分利用起來並進行合理的分配。增加核心的並行運算效能。在作業系統中,一顆物理cpu可以當作多個cpu使用,類似於軟體共享一樣。舉個例子,我們以下面四核四執行緒cpu為例,為大家講解cpu的超執行緒,下圖乙個cpu提供了四個核心,每乙個核心又提...

超執行緒處理器使用前 檢查系統需求

從觀察cpu的關聯設定到處理器可用性的檢查,在使用管理程式的超執行緒處理器之前,需要考慮哪些事情。超執行緒提供了效能優勢,在管理程式中使用超執行緒時,超執行緒利用未使用的處理器資源,使處理器保持忙碌的狀態,完成更多的任務。然而,管理程式中超執行緒的成功或者失敗,取決於管理程式或作業系統是否可以探測到...

跨執行緒可能引發的崩潰問題

跨執行緒引發的崩潰 1.正常跨執行緒呼叫 a.跨執行緒造成死鎖 b.跨執行緒釋放記憶體 c.多執行緒併發訪問 例如 進入乙個介面時,該介面會同時發起三個非同步請求操作。每個操作在發起資料請求時,都可能會調某一方法進行訪問某一屬性值 d.執行緒本身有問題,呼叫此執行緒也會掛掉。執行本段邏輯均會掛掉 e...