
軟件擴展能力是軟件架構設計中的一個關鍵要素,具有良好擴展能力的軟件能夠充分利用新增的硬件資源。當軟件性能與硬件增加保持同步比例增長時,我們稱這種現象為軟件具有線性擴展能力。要實現這種線性擴展并不簡單,它要求軟件架構精心設計,能夠最大化硬件性能的利用,同時減少內部資源消耗。這需要對現有架構進行深入的優化和調整。
為了驗證 TDengine 是否具備線性擴展能力,我們可以采取以下測試方法:首先識別出可能成為性能瓶頸的硬件資源,然后逐步增加這類資源,觀察軟件性能的變化。典型的測試焦點包括 CPU 和磁盤,因為這兩者是計算機資源中最常見的擴展點。下面我們將從這兩方面來進行測試驗證。
01
TDengine CPU 線性擴展能力
測試目的
測試方法
測試參數
測試結果


數據解讀
-
在 4 核時 CPU 使用率降至 88%,若再增加 CPU 可能 CPU 不會再成為瓶頸,所以升級配置至 12 個 VGROUPS、12 寫入線程,讓 CPU 始終保持在瓶頸狀態下
-
每增加一個 CPU,寫入性能線性提升約 50W 左右,符合線程增長預期
-
磁盤 IO 基本與寫入速度增長保持一致
TDengine IO 線性擴展能力
測試目的
測試方法
測試系統:Linux Ubuntu 20.4 操作系統
硬件配置:CPU 24 核, 64 GB 內存,掛三塊普通 5400 轉低速機械盤(選擇性能普通的硬盤,有利于很快打滿 IO,達到 IO 成為瓶頸的條件 )
TDengine:版本 V3.3.0.0
測試工具:taosBenchmark
表結構:

(每行長度 32618 字節,使用大寬行,更能把 IO 打滿)
增加磁盤方法:使用同級掛載多塊磁盤技術
測試參數
數據庫:1 個 VGROUP 16
超級表:1 個
子表數:100 個
每子表行數:1W
總數據量:100W
taosBenchmark :
寫入線程數 = 16 個
寫入方式 = stmt vgroup 綁定線程快速寫入方法
測試結果

-
CPU: 24 核 CPU ,大部分都為空閑,CPU 非常富余 -
帶寬:客戶端服務器同一臺機器,帶寬可認為無限制 -
Commit 線程數是數據落盤的線程數,直接操作 IO -
磁盤掛載到 3 塊后,需求加大 Commit 線程數,才能打滿 IO

數據解讀
從數據上可看出,每增加一塊磁盤,寫入性能也會成比例增長,新增磁盤 IO 被充分使用。
寫在最后



























