當前位置:
首頁 > 最新 > 低延時應用&伺服器TurboBoost不可得兼?

低延時應用&伺服器TurboBoost不可得兼?

今天又是貴陽數博會,想起去年同期我曾寫過以下2篇文:

《RSA整機架伺服器DSS 9000現身數博會》

《數據中心選址貴陽理由:天、地、電》

因為前幾年聽書《明朝的那些事》,我曾慕名去了兩個地方,一個是杭州于謙故居,另一個就是貴陽的陽明祠。對於看書不多的我來說,從那時起有些崇拜王守仁和他那「知行合一」的哲學理論。

其實技術上有些思路,也是與哲學相通的。

從TurboBoost初期的3ds Max渲染測試說起

當年3ds Max的渲染測試截圖不好找了,我就拿一張SolidWorks最終渲染的屏幕照片做為替代,正好前一段測試了Dell Precision T5810和T3420工作站。手機拍的質量不好大家見諒:)

記得Intel從10來年前的Xeon 5500系列時期引入TurboBoost睿頻技術,這一動作當時似乎沒有將內存控制器、以及後來的PCIe控制器整合進CPU那麼受人關注。本質上說是CPU技術發展遇到頻率功耗牆——然後開始推多核——部分軟體的並發線程上不去導致有的核心空閑。此時CPU功耗距離TDP(熱設計功耗)尚有餘量,不如索性自動「超頻」來提高性能。

談到圖形工作站上的CPU渲染(或者說最終生成),無論3ds Max還是SolidWorks等都會充分把CPU的線程用滿。比如我在上圖中圈出的16個「小窗」,實際上是一顆4核8線程的Intel Xeon E5-1620 v4CPU,拍照時正好處於前8個小窗渲完,另外新開8個小窗的切換時刻。這裡TurboBoost能發揮作用嗎?

上面引用這份較早的資料,今天還是同樣的道理。處於活動的CPU核心越少,TurboBoost可超頻的幅度就越大,這一點我想許多做技術的朋友都清楚。而當所有核心被程序佔滿時,Intel部分CPU還支持小幅的TurboBoost,據說判斷標準是此時TDP是否超標。

具體到實際產品上,當年我測過一款Xeon W5580的工作站,3ds Max渲染時監控CPU主頻,印象中就是以1秒間隔很規律的在3.20GHz和3.33GHz之間切換。這樣當然也比頻率一直固定在3.20GHz原始頻率上效率要高一點,但不是所有應用都適合這麼干。前兩天還與做資料庫的朋友聊過這個,比如金融行業需要穩定低延時的高頻交易應用,就不希望CPU頻率跳來跳去。

這時大家可能會想起伺服器/工作站BIOS里有個限制CPU核心數的選項,對於某些要求單核心性能的應用,修改這個應該可以把TurboBoost幅度保持在高水平。另外,理論上每顆CPU的TurboBoost和節電狀態可以根據負載不同來單獨控制,那麼可以給一台伺服器上多個CPU限制不同的核心數嗎?

例如以前有的4核CPU TurboBoost的描述是3/2/2/1,也就是從單核到4核能夠超頻的幅度(100或133MHz的倍數)。那麼如果我們預設目標是雙核的頻率+200MHz,TurboBoost能否設一個上限選項?以確保在只有一個Core活動時頻率也不會往上跳。

寫到這裡,我還想起之前在撰寫《一項Xeon E5-2600 v4測試數據的背後》時看過的一份資料。

AVX與non-AVX Turbo頻率的差異

引用自《Performance and Energy Efficiency of Dell PowerEdge Servers withE5-2600 v4》

上圖的字有點小,點擊放大後可以看清。從這裡我了解到之前沒太注意的一點,目前流行的Xeon E5 v4等Intel CPU在執行AVX指令時頻率會有所降低,估計也是功耗方面考慮吧。這個頻率也分為至少3種——TDP基礎頻率、最大Turbo頻率、全部核心最大Turbo頻率——在AVX和non-AVX狀態下都可能會有不同。

這裡有個問題,雙路或者四路伺服器,當部分CPU上有AVX指令運行是否會影響到餘下CPU的頻率?當時我並沒有想到這一點,而最近才了解到這些早已有人考慮過。

DPAT處理器加速技術:原理上並不複雜

上圖來自我在網上搜到的一個文檔,Dell亞太區伺服器產品經理吳鵬程曾經分享的資料《戴爾13G伺服器性能提升與最佳實踐》,裡面提到了Dell Processor AccelerationTechnology(DPAT)2.0技術。

這裡給出的圖示應該不難理解,我這人寫技術喜歡撈乾貨。正如前面所講的,如果所有CPU核心都開著,你不能保證在幾個線程工作的情況下不會有其它程序偶爾把別的空閑核心也用起來(即使做了綁核),這時TurboBoost頻率就會受到影響。

上圖介紹了DPAT技術實現的幾種場景

DPAT1.0:我理解就是在全部核心工作時穩定TurboBoost的水平;

DPATPro場景1:所有CPU運行Non-AVX代碼,只限制CPU1的核心數到4 Core3.3G Turbo,CPU 2跑在18 Core最大Turbo頻率2.8G;

DPATPro場景2:跑滿全部核心,但只有一個CPU運行AVX代碼,此時2顆CPU頻率相差200MHz;

DPATPro場景3:與場景1的區別在於,全部CPU或者只有CPU2運行AVX代碼,此時CPU2的最大Turbo頻率降為2.6G。

據了解DPAT是個免費的技術,只需要在做伺服器配置時選擇一個License即可支持。使用中有多種途徑可以打開,最簡單的一個方法是在BIOS中可以看到Number of Cores for Processor 1這樣針對每顆CPU的核心數的限制,還有Processor 1 Controlled Turbo可以獨立調整每顆CPU TurboBoost頻率上限的選項。

同時應確保System Profile設置為Performance mode,或者Custom mode選項並將CPU Power Management設為Maximum Performance mode並打開Turbo Boost mode。

上面是DPAT針對的主要目標應用場景。如果有用戶想詳細了解Intel CPU在使用不同核心數時設計的具體TurboBoost檔位,另外還有Dell針對低延時應用環境的更多最佳實踐,可以找這方面的技術顧問來諮詢。

最後再推薦給大家一篇我寫的《無獎競猜:影響伺服器性能的內存配置》,並預祝端午節快樂!

歷史文章匯總(傳送門):http://chuansong.me/account/huangliang_storage

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 企業存儲技術 的精彩文章:

評測:當Xeon核顯遇上3ds Max、Solidworks
Intel Optane P4800X評測:不用緩存和電容保護的SSD?

TAG:企業存儲技術 |

您可能感興趣

Kiwi for Gmail是Windows應用程序,可以轉換體驗
HomePod將支持HomeKit應用 讓Siri變得更好用
微軟將會保留Microsoft Paint並且不會移入應用商店
Chrome OS已經支持Linux應用,何時兼容Windows?
不只是Android:Chromebook現能運行Linux應用了
AirBuddy讓AirPods應用更廣泛 讓iMac像iPhone一樣連接耳機
Google的AR「Measure」應用程序適用於所有ARCore Android手機
讓您的應用完美適配 Android Oreo
Facebook的Monment應用程序將停止服務,原因竟是?
微軟Windows Phone系統怎麼樣 又一款應用不再支持
Facebook是如何通過Android應用程序跟蹤非註冊用戶的
Facebook將關閉照片分享應用Moments,原因是用戶太少
沒人用的相冊應用「Moments」將遭到Facebook關閉
Google 搜索應用將無法繼續在 Windows Phone 使用
如何用 Python 測試 Android 應用
使用 Docker 容器化 Django Web 應用
Google 的 Fuchsia OS 將能運行 Android 應用
springboot:使用Spring Boot Actuator監控應用
應用│『Facebook Spaces』將頭像變得更「流暢和自然」
使用 flutter 開發 ios/android 應用