在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

輕負載場景下CPU使用率的比較

Arm社區 ? 來源:Arm社區 ? 2024-10-21 09:48 ? 次閱讀

作者:安謀科技 (Arm China) 主任軟件工程師 常瑞

Arm Neoverse N 系列和 V 系列處理器并未采用同步多線程 (SMT) 技術。在 Arm Neoverse 處理器上運行時,每個線程始終能夠訪問處理器的全部資源。這有助于提高在云環境中執行的可預測性,確保每個線程都能完全訪問處理器資源,并提供更強大的保護,防止線程之間發生意外數據泄露。

在采用 SMT 技術的處理器中,每個物理處理器分為兩個或兩個以上的邏輯核心。這些邏輯核心相互共享一些資源。例如,一種常見的設計是,邏輯核心共享執行單元,分支預測器、預取器和緩存等處理器結構。在 SMT 系統中,每個邏輯核心都有自己的寄存器和程序計數器,因此每個邏輯核心能夠執行獨立的執行線程。市面上典型的 SMT 實現方案包括英特爾的超線程 (Hyper-Threading) 和 AMD 的 SMT。

如果比較 Neoverse 處理器和其他支持 SMT 的處理器的 CPU 使用率,有時會出現這樣的情況:在類似的輕負載水平下,Arm CPU 使用率似乎更高。這可能令使用者認為 Arm 平臺的性能可用擴展空間較小。在本文中,我們將探討輕負載場景下,比較采用 SMT 和未采用 SMT 的系統時,為什么“CPU 使用率”指標可能具有誤導性。

測量 CPU 使用率

Linux 操作系統根據 CPU 核心在工作還是處于空閑狀態來計算 CPU 使用率。SMT 模式下的邏輯核心共享物理核心的執行資源。在輕負載場景下,邏輯核心能夠以物理核心的能力全速運行。因此,操作系統可能會顯示邏輯 CPU 使用率低。但這并不意味著物理核心負載低,因為兩個邏輯核心的負載都添加到了物理核心中。

這就導致負載較輕的情況下 SMT 系統與未采用 SMT 的系統相比,似乎有更多的剩余性能空間。但其實這可能是一個誤導。例如以下這個經過大幅簡化的場景:

兩個邏輯核心 LCore0 和 LCore1 在一個物理處理器上運行。

每個邏輯核心都運行一個處理 Web 請求的工作負載。每個請求需使用整個 CPU 0.1 秒進行處理,然后返回等待狀態。

在一秒的時間范圍內,LCore0 和 LCore1 分別為三個請求提供服務。

LCore0 的執行時間為 0.3 秒,空閑時間為 0.7 秒,因此計算得出 CPU 使用率為 30%。

LCore1 也是如此,同樣計算得出 CPU 使用率為 30%。

二者相加,物理處理器被充分使用的時間為 0.6 秒,因此實際使用率為 60%。

e31130bc-8dae-11ef-a511-92fbcf53809c.png

圖 1:SMT 下的 CPU 使用率說明

分析上述示例中的邏輯核心使用率時,使用者可能會推斷 CPU 的能力足以繼續處理 14 個 Web 請求。然而,實際 CPU 只能夠再處理四個請求。

需注意的是,與實際工作負載相比,上述示例經過簡化,實際工作負載的物理處理器使用率可能更低,具體取決于支持在邏輯核心之間共享物理處理器資源的動態條件。在嘗試預估系統上可能有多少可用性能空間時,這種不可預測性會是一項挑戰。

在本文中,我們將設計一個微型基準測試,以及使用實際工作負載在 SMT 系統上演示此行為。

微型基準測試

這個微型基準測試包含了大量讀數據和一些簡單數學運算。它會產生較大的 IPC,從而充分利用物理處理器的可用執行單元。為了模擬不同的負載水平,我們在計算循環中添加了不同的休眠時間。一級負載最輕,七級負載最重。在支持 SMT 的系統上,我們先在一個邏輯核心上運行程序,然后在同一物理處理器的兩個邏輯核心上同時運行程序。對從輕到重的所有負載水平都做同樣的測試。對于非 SMT 系統,我們使用 Neoverse N2 進行測試。對于雙核測試情形,我們使用連接到同一 Arm CMN 交叉點的兩個核。需注意的是,我們在編譯時禁用了向量化,因為實際工作負載中的大多數代碼不像該微型基準測試那樣容易實現向量化。

運行測試

我們在運行頻率為 3.5GHz 的主流 SMT 系統和未采用 SMT 的基于 Neoverse N2 的平臺 (2.7GHz) 上運行微型基準測試。

SMT

在我們的系統中,邏輯核心 0 和邏輯核心 32 共享同一個物理核心。因此,我們將在核心 0 和核心 32 上運行。

e32e9e2c-8dae-11ef-a511-92fbcf53809c.png

此處列舉了在兩個核心上同時運行微型基準測試的輸出示例。1000000000 是我們使用微型基準測試進行的計算輪數。7 是我們希望達到的負載級別。我們將使用 perf 工具來收集 time elapsed(即總運行時間)和 insn per cycle(即 IPC)。CPU 使用率通過 top 命令獲取。

e34d9868-8dae-11ef-a511-92fbcf53809c.png

收集到的結果如下所示:

e370831e-8dae-11ef-a511-92fbcf53809c.png

從數據中可以看出,從三級和四級負載開始,LCore 0 和 LCore 1 的綜合 CPU 使用率逐漸超過 100%,相應地,兩個核心的 IPC 大幅下降。

非 SMT

在 Neoverse N2 平臺上,每個核心都是獨立的物理核心。我們將在核心 0 和核心 1 上運行。

e38a5c44-8dae-11ef-a511-92fbcf53809c.png

結果表明,在 Neoverse 系統上,兩個核心的 IPC 與一個核心的 IPC 沒有太大的差別。而且,從輕負載到重負載,IPC 沒有下降。這一點與 SMT 系統截然不同。這意味著無論 CPU 使用率如何,CPU 的能力始終保持一致。

e3b0aa0c-8dae-11ef-a511-92fbcf53809c.png

對結果的進一步分析

兩個硬件線程影響

要想找到一個可靠的直接指標來判斷物理核心的繁忙程度,這并非易事,但我們可以從其他角度進行判斷。在這里,我們選擇 IPC 進行分析。我們使用兩個核心運行得到的數據除以一個核心運行得到的數據。這可以揭示 SMT 系統的特點。

e3d5f65e-8dae-11ef-a511-92fbcf53809c.png

在下圖中,我們看到在輕負載的情況下,對于 SMT 系統,兩個核心和一個核心的 IPC 幾乎相同。這是因為物理核心并不繁忙,邏輯核心的所有操作幾乎都是以物理核心的最快速度運行,因此 IPC 非常高。CPU 使用率看起來很低。但物理核心實際運行的負載是一個邏輯核的兩倍。因此,物理 CPU 的使用率應該增加一倍。隨著負載的增加,與一個核心相比,兩個核心的 IPC 大幅降低。這是因為它們需要爭用和共享執行單元中的資源。此時物理核心已經滿載,無法像輕負載情況下那樣及時處理來自兩個核心的所有請求。最后,IPC 降至幾乎一半。這證明兩個邏輯核心正在共享物理核心。

相比之下,Neoverse 系統始終保持在 1,因為兩個核心是獨立的,無論負載水平如何,它們始終以相同的速度運行。

e3f51138-8dae-11ef-a511-92fbcf53809c.png

圖 2:微型基準測試 IPC 比較

性能與 CPU 使用率的對比

在這里,我們將性能定義為“1000000000/總運行時間”。1000000000 是我們使用微型基準工具進行的測試輪數。由于我們使用的 Neoverse N2 平臺的頻率 (2.7Ghz) 遠低于 SMT 系統 (3.5Ghz),因此我們將 Neoverse N2 平臺的性能數據按比例調整為相同的 3.5Ghz。我們針對兩個核心的情況進行對比,因為在生產環境中,同時使用物理核心的兩個邏輯核心是最通常的用例。

e40c14d2-8dae-11ef-a511-92fbcf53809c.png

下圖展示了頻率調整后的性能與 CPU 使用率??梢钥吹剑S著 CPU 使用率的增加,SMT 系統的性能輸出變得平緩。與此同時,Arm 的性能輸出保持理想的線性增長趨勢,并最終在高 CPU 使用率區域性能超過了 SMT 系統。因此,如果僅使用低 CPU 使用率區域的性能輸出來預測 SMT 系統在高 CPU 使用率場景下的性能,可能會得到錯誤的結果。

e4347e72-8dae-11ef-a511-92fbcf53809c.png

圖 3:微型基準測試調整后的性能

在這里,我們又創建了“性能達成率”指標,即“性能/CPU 使用率”。性能數據來自上表。處理工作負載時,理想的系統應保持恒定的比率,即特定的 CPU 使用率應提供特定的性能輸出。

從該圖中可以看出,隨著 CPU 使用率的增加,SMT 系統的性能達成率大幅下降。而在 Arm 平臺上,性能達成率表現得更好且恒定。

e472e932-8dae-11ef-a511-92fbcf53809c.png

圖 4:微型基準測試調整后的性能達成率

實際工作負載

下面試著用大家熟悉的工作負載來描述這個問題。在這里,我使用了 Flink 以及用于對 Flink 進行基準測試的 Nexmark。

測試說明

針對 SMT 系統和未采用 SMT 的基于 Neoverse N2 的系統,我們創建了兩個具有類似硬件資源的集群。軟件版本和配置也相同。

e4981c3e-8dae-11ef-a511-92fbcf53809c.png

Nexmark 有多個測試用例,這里我們選擇 Q0 測試進行比較。其他的測試也會有類似輸出。

測試結果

Nexmark Q0 測試結果如下所示。對于 SMT 系統和 Arm 平臺,在相同負載水平 (TPS) 下,從 top 工具中得到的 CPU 使用率不同。

e4a8dc9a-8dae-11ef-a511-92fbcf53809c.png

可以看到,當工作負載水平較低時,Arm CPU 使用率高于 SMT 系統,但當 CPU 使用率達到大約 50% 后,SMT 系統的 CPU 使用率增長得更快。最后,我們看到在高 CPU 負載下,SMT 系統 CPU 使用率遠高于 Arm 平臺。當 CPU 得到充分使用時,Arm 平臺可輸出更高的 TPS。

e4cb910e-8dae-11ef-a511-92fbcf53809c.png

圖 5:不同 TPS 下的 Flink CPU 使用率

我們也可以從另一個角度來看:在相同的 CPU 使用率水平下,系統能夠生成的 TPS 數量的趨勢。起先,Arm 平臺表現得并不突出,但當 CPU 使用率達到大約 50% 后,Arm 的性能大幅提高。

e4e91652-8dae-11ef-a511-92fbcf53809c.png

圖 6:不同 CPU 使用率下的 Flink TPS

在這里,我們也創建了“性能達成率”指標,即 TPS/CPU_Usage。處理工作負載時,理想的系統應保持恒定的比率。從該圖中可以看出,隨著 CPU 使用率的增加,SMT 系統的性能達成率大幅下降。而在 Arm 平臺上,性能達成率表現得更好。

e513ec2e-8dae-11ef-a511-92fbcf53809c.png

圖 7:Flink 性能達成率

因此,該 Flink 測試用例展示的結果與我們在微型基準測試中看到的結果相似。在輕負載場景下,Arm 平臺可能會顯示較高的 CPU 使用率。然而,超過某個點后,SMT 系統的 CPU 使用率會迅速超過 Arm,因此在高 CPU 使用率的情況下,SMT 系統的性能輸出下降。

結論

在輕負載場景下,支持 SMT 的系統的 CPU 使用率可能會被低估。在預估還有多少額外性能空間可供我們在機器上部署工作負載時,CPU 使用率指標可能具有誤導性。因此,在部署工作負載時,我們應在 CPU 被 100% 使用的情況下測試性能輸出水平,然后根據得到的值留出性能緩沖區,而不是簡單的根據 CPU 使用率預留性能空間。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19286

    瀏覽量

    229842
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9097

    瀏覽量

    367556
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10863

    瀏覽量

    211763
  • 操作系統
    +關注

    關注

    37

    文章

    6825

    瀏覽量

    123331
  • smt
    smt
    +關注

    關注

    40

    文章

    2901

    瀏覽量

    69263

原文標題:一文解謎 SMT 系統上 CPU 使用率的盲點

文章出處:【微信號:Arm社區,微信公眾號:Arm社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    labview如何獲取Win7的CPU使用率、MEM使用率和硬盤使用率?

    如題,LabVIEW開發程序,需要獲取CPU使用率、MEM使用率和硬盤使用率。
    發表于 11-13 10:52

    如何表示UCOS-III的CPU使用率?

    剛剛在修改一個程序,發現UCOS-II的CPU使用率是OSCPUUsage;但在UCOS-III系統卻報錯,那os-iii的CPU使用率
    發表于 08-01 03:52

    Outport對CPU使用率的影響是什么?

    時,PIL 塊的 CPU 使用率變為 ~0.000208%。在這種情況,我不確定該算法是否可以在沒有輸出端口的情況下工作,但我想知道您的意見。
    發表于 04-03 06:44

    CPU使用率問題求解

    對于我們的 CPU 使用率分析任務,MathWorks 團隊在 PIL 模式對 Nucleo-F303RE 72 MHz 板實施了一個 simulink 示例。我在 MPC5775E 板上實現了
    發表于 04-03 09:07

    C#教程之CPU內存使用率

    C#教程之CPU內存使用率,很好的C#資料,快來學習吧。
    發表于 04-20 14:16 ?7次下載

    Linux CPU 使用率與機器負載的關系與區別

    ,“有多少內核,即有多少負載”。4.CPU使用率到多少才算比較理想?CPU用率在過去常常被我們
    發表于 04-02 14:31 ?474次閱讀

    cpu使用率多少算正常_cpu使用率100怎么辦

    本文首先分析了cpu使用率多少算正常,其次闡述了cpu使用率100的解決方法,最后介紹了優化cpu使用率
    發表于 04-29 09:28 ?1.6w次閱讀

    cpu使用率過高怎么解決_cpu使用率過高是什么原因

    本文主要闡述了cpu使用率過高的原因及解決方法。
    發表于 04-29 09:34 ?1638次閱讀

    為什么明明沒開多少軟件,計算的CPU使用率卻莫名的高

    大家在用電腦的時候經常會遇到一個情況,明明自己也沒開多少軟件,計算的CPU使用率卻莫名的高。這是什么原因呢,本文中將對此進行講解。 (任務管理器截圖) 一般情況,CPU
    的頭像 發表于 02-03 17:09 ?2.7w次閱讀
    為什么明明沒開多少軟件,計算的<b class='flag-5'>CPU</b><b class='flag-5'>使用率</b>卻莫名的高

    CPU使用率達到100%會怎樣

    我們使用電腦的時候,點擊太多程序會導致CPU使用率達到100%。
    的頭像 發表于 02-02 10:59 ?5.3w次閱讀

    CPU使用率是什么意思

    打開電腦的任務管理器,看著跳動的CPU使用率,發現很舒服。每一個線程占用了多少CPU清清楚楚,也就能針對性的確認為啥你的電腦跑的慢了。
    的頭像 發表于 05-12 10:37 ?9188次閱讀

    Lappy電池警報和CPU使用率開源

    電子發燒友網站提供《Lappy電池警報和CPU使用率開源.zip》資料免費下載
    發表于 11-29 14:41 ?0次下載
    Lappy電池警報和<b class='flag-5'>CPU</b><b class='flag-5'>使用率</b>開源

    使用Bolt監控CPU使用率

    電子發燒友網站提供《使用Bolt監控CPU使用率.zip》資料免費下載
    發表于 12-14 11:23 ?0次下載
    使用Bolt監控<b class='flag-5'>CPU</b><b class='flag-5'>使用率</b>

    什么是CPU使用率?如何測量CPU使用率?

    CPU 使用率CPU 在計算機上執行各種任務和進程所花費的時間量的度量。
    的頭像 發表于 08-06 17:07 ?5896次閱讀

    如何在Linux系統中檢查CPU使用率

    首先在Linux系統中檢查CPU使用率??梢酝ㄟ^在命令行中輸入top或htop命令來查看當前系統中各個進程的CPU使用率。如果CPU
    發表于 01-06 10:42 ?1323次閱讀
    如何在Linux系統中檢查<b class='flag-5'>CPU</b><b class='flag-5'>使用率</b>
    主站蜘蛛池模板: 午夜资源| 香蕉久久夜色精品国产小说| 性欧美一级| 久在草影院| 天天色视频| 亚洲 丝袜 制服 欧美 另类| 亚洲高清视频一区| 色婷婷久久| 最新版天堂资源8网| 午夜dy888理论三级| 婷婷开心六月久久综合丁香| 国产成人精品亚洲77美色| 不卡午夜| 日本口工福利漫画无遮挡| 日本在线一级| 国产成人精品亚洲日本在线 | www.啪啪.com| 四虎国产精品免费视| 噜噜噜 综合 亚洲| 欧美午夜性春猛交bbb| 成人国产精品一级毛片了| 免费看 s色| 97伊人| 免费在线看视频| 一级做a爱片特黄在线观看 | 男人j桶女人j免费视频| 欧美mv日韩mv国产mv网站| 97午夜影院| 亚洲伦理中文字幕一区| 欧美xxxxx喷潮| 亚洲福利视频网址| 视频一区 在线| 久久好色| 四虎免费看黄| 日本人亚洲人成人| 欧美hh| 亚州一级| 天天舔天天色| 一级特黄特黄xxx视频| aa毛片| 男人午夜免费视频|