全部產品
Search
文件中心

Elastic High Performance Computing:運行HPL、iPerf和FIO以測試叢集效能

更新時間:Jun 08, 2026

E-HPC用戶端提供了可視化的頁面來配置HPL、iPerf和FIO應用,可以快速提交相關作業,測試叢集benchmark效能,包括浮點計算能力、頻寬效能和讀寫能力。

背景資訊

測試叢集benchmark效能主要使用以下幾個軟體:

  • HPL:一個測試高效能運算叢集系統浮點效能的基準程式。HPL通過對高效能運算叢集採用高斯消元法求解一元N次稠密線性代數方程組的測試,評價高效能運算叢集的浮點計算能力。

  • iPerf:一個網路效能測試工具,支援設定協議、時間等相關參數,可以報告頻寬、資料包丟失等。

  • FIO:一個開源的I/O壓力測試工具,主要用於測試磁碟的IO效能,支援多引擎和多情境測試。

準備工作

使用用戶端運行HPL、iPerf和FIO測試叢集效能,請確保已在叢集中安裝HPL、iPerf和FIO軟體及其依賴。需安裝的軟體及其相關依賴如下:

  • HPL:需安裝intel-mpi 2018、linpack 2018、 openmpi 3.0.0。

  • iPerf:需安裝iPerf、intel-mpi 2018。

  • FIO:需安裝fio 3.1、intel-mpi 2018。

其中,iPerf需要在每個節點上執行yum install -y iperf命令安裝;其他軟體可以通過控制台安裝,具體操作,請參見安裝軟體

操作步驟

  1. 開啟並登入用戶端。

  2. 在左側導覽列,單擊應用中心

  3. 測試算力。

    1. 單擊hpl應用。

    2. 在彈出面板配置相關參數,單擊提交

      參數類型

      參數

      樣本值

      描述

      基礎參數

      作業名稱

      hpltest

      自訂設定。

      作業隊列

      workq

      運行該作業的隊列。

      CPU核心數

      2

      單個節點的CPU核心數。

      節點數

      1

      運行該作業所需的計算節點數。

      輸出日誌

      hpl_test.log

      作業作業記錄的輸出路徑。

      應用參數

      求解規模

      10000

      求解的矩陣規模(N)。規模越大,有效計算所佔的比例越大,則系統浮點處理效能越高。但矩陣規模越大會導致記憶體消耗量越多,如果系統實際記憶體空間不足,使用緩衝、效能會大幅度降低。矩陣佔用系統總記憶體的80%左右為最佳,即N×N×8=系統總記憶體×80%(其中總記憶體的單位為位元組)。

      分塊大小

      192 256

      求解矩陣過程中矩陣分塊的大小(NB)。NB值的選擇主要是通過實際測試得出最優值。

  4. 測試頻寬。

    1. 單擊iperf應用。

    2. 在彈出面板配置相關參數,單擊提交

      參數類型

      參數

      樣本值

      描述

      基礎參數

      作業名稱

      iperftest

      自訂設定。

      作業隊列

      workq

      運行該作業的隊列。

      CPU核心數

      2

      單個節點的CPU核心數。

      節點數

      1

      運行該作業所需的計算節點數。

      輸出日誌

      iperf_test.log

      作業作業記錄的輸出路徑。

      應用參數

      HostName

      login0

      要測試的節點主機名稱。

      主機網卡

      eth0

      要測試的節點主機網卡。

  5. 測試讀寫能力。

    1. 單擊fio應用。

    2. 在彈出面板配置相關參數,單擊提交

      參數類型

      參數

      樣本值

      描述

      基礎參數

      作業名稱

      fiotest

      自訂設定。

      作業隊列

      workq

      運行該作業的隊列。

      CPU核心數

      2

      單個節點的CPU核心數。

      節點數

      1

      運行該作業所需的計算節點數。

      輸出日誌

      fio_test.log

      作業作業記錄的輸出路徑。

      應用參數

      ioengine

      psync

      I/O引擎使用的測試方式。可選項:

      • psync

      • libaio

      讀寫方式

      rw

      測試的讀寫方式。可選項:

      • read:順序讀

      • write:順序寫

      • rw:順序讀寫

      • randread:隨機讀

      • randwrite:隨機寫

      • randrw:隨機讀寫

      IO塊大小

      4K

      單次I/O測試的塊檔案大小,可配置為4K或16K。

      線程數

      1

      測試線程數。

      測試時間

      100s

      測試時間。

      讀寫資料量

      1024M

      要測試的資料量。

      測試檔案

      /home/username

      存放系統產生的測試檔案的路徑。

查看結果

  1. 在用戶端的左側導覽列,單擊作業查詢

  2. 找到HPL、iPerf和FIO作業,分別確認作業狀態並擷取結果。

    當作業狀態變為FINISHED時,單擊作業對應的詳情,在作業詳情頁面單擊作業輸出檔案與路徑後的查看,即可查看結果。結果樣本如下:

    • HPL

      - The matrix A is randomly generated for each test.
        - The following scaled residual check will be computed:
              ||Ax-b||_oo / ( eps * ( || x ||_oo * || A ||_oo + || b ||_oo ) * N )
        - The relative machine precision (eps) is taken to be            1.11022
        - Computational tests pass if scaled residuals are less than
        compute000    : Column=000192 Fraction=0.005 Kernel=     0.00 Mflops=15756
        ============================================================================
        T/V                N    NB     P     Q               Time                  G
        ----------------------------------------------------------------------------
        WC00C2R2         256   192     1     1               0.00              5.9646
        HPL_pdgesv() start time Fri Sep 30 10:23:44 2022
        HPL_pdgesv() end time   Fri Sep 30 10:23:44 2022
        ----------------------------------------------------------------------------
        ||Ax-b||_oo/(eps*(||A||_oo*||x||_oo+||b||_oo)*N)=        0.0110876 ...... P
        ============================================================================
        Finished      1 tests with the following results:
                      1 tests completed and passed residual checks,
                      0 tests completed and failed residual checks,
                      0 tests skipped because of illegal input values.
    • iPerf

      Client connecting to 192.xxx.xxx.xxx TCP port 5001
      TCP window size:  604 KByte (default)
      ------------------------------------------------------------
      [ 12] local 192.168.xxx.1 port 47930 connected with 192.168.1.xxx port 5001
      [  4] local 192.168.xxx port 5001 connected with 192.168.1.xxx port 47930
      [ ID] Interval       Transfer     Bandwidth
      [  4]  0.0- 1.0 sec  1.16 GBytes  9.94 Gbits/sec
      [ ID] Interval       Transfer     Bandwidth
      [ 12]  0.0- 1.0 sec  1.16 GBytes  9.95 Gbits/sec
      [ 12]  1.0- 2.0 sec   795 MBytes  6.67 Gbits/sec
      [  4]  1.0- 2.0 sec   797 MBytes  6.68 Gbits/sec
      [ 12]  2.0- 3.0 sec  1.10 GBytes  9.48 Gbits/sec
      [  4]  2.0- 3.0 sec  1.10 GBytes  9.47 Gbits/sec
      [ 12]  3.0- 4.0 sec  1.18 GBytes  10.1 Gbits/sec
      [  4]  3.0- 4.0 sec  1.17 GBytes  10.1 Gbits/sec
      [ 12]  4.0- 5.0 sec  1.00 GBytes  8.59 Gbits/sec
      [  4]  4.0- 5.0 sec  1022 MBytes  8.57 Gbits/sec
      [ 12]  5.0- 6.0 sec  1.22 GBytes  10.5 Gbits/sec
      [  4]  5.0- 6.0 sec  1.23 GBytes  10.5 Gbits/sec
      [  4]  6.0- 7.0 sec  1.04 GBytes  8.93 Gbits/sec
      [ 12]  6.0- 7.0 sec  1.04 GBytes  8.91 Gbits/sec
    • FIO

         clat percentiles (usec):
           | 99.99th=[11338]
         bw (  KiB/s): min=  479, max= 1608, per=100.00%, avg=1238.62, stdev=163.
         iops        : min=  119, max=  402, avg=309.64, stdev=40.98, samples=206
      write: IOPS=309, BW=1240KiB/s (1270kB/s)(121MiB/100001msec)
         clat (usec): min=1695, max=84691, avg=2203.84, stdev=1582.55
          lat (usec): min=1695, max=84691, avg=2203.97, stdev=1582.55
         clat percentiles (usec):
           |  1.00th=[ 1827],  5.00th=[ 1893], 10.00th=[ 1909], 20.00th=[ 1958],
           | 30.00th=[ 1975], 40.00th=[ 2008], 50.00th=[ 2040], 60.00th=[ 2073],
           | 70.00th=[ 2114], 80.00th=[ 2147], 90.00th=[ 2278], 95.00th=[ 2573],
           | 99.00th=[ 5866], 99.50th=[ 7832], 99.90th=[23725], 99.95th=[33424],
           | 99.99th=[63177]
         bw (  KiB/s): min=  472, max= 1448, per=100.00%, avg=1239.76, stdev=136.
         iops        : min=  118, max=  362, avg=309.93, stdev=34.15, samples=206
        lat (usec)   : 750=0.41%, 1000=36.82%
        lat (msec)   : 2=30.29%, 4=31.00%, 10=1.29%, 20=0.14%, 50=0.05%
        lat (msec)   : 100=0.01%
        cpu          : usr=0.16%, sys=0.49%, ctx=61973, majf=0, minf=30
        IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, >=64=0
           submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0
           complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0
           issued rwts: total=30969,30999,0,0 short=0,0,0,0 dropped=0,0,0,0
           latency   : target=0, window=0, percentile=100.00%, depth=1
      Run status group 0 (all jobs):
         READ: bw=1239KiB/s (1268kB/s), 1239KiB/s-1239KiB/s (1268kB/s-1268kB/s), io=121MiB (127MB), run=100001-100001msec
        WRITE: bw=1240KiB/s (1270kB/s), 1240KiB/s-1240KiB/s (1270kB/s-1270kB/s), io=121MiB (127MB), run=100001-100001msec