全部產品
Search
文件中心

File Storage NAS:NAS效能測試

更新時間:Oct 18, 2024

本文介紹如何在Linux/Windows系統中使用FIO工具對檔案系統進行吞吐和IOPS的效能測試。

前提條件

您已經建立了待測試的檔案系統,並將檔案系統掛載到ECS執行個體上。具體操作,請參見快速入門

背景資訊

本文樣本的績效參數,均為Linux/Windows系統下採用FIO工具的測試結果,以此作為Apsara File Storage NAS產品效能指標參考。如果想達到Apsara File Storage NAS的官網效能指標 ,建議使用多台ECS進行測試。Apsara File Storage NAS的官網效能指標,請參見Apsara File Storage NAS

注意事項

效能測試前,請注意以下事項。

  • 吞吐最大不會超過ECS內網頻寬,如果內網頻寬太小,則吞吐會被流量控制。

    例如,您購買的是最低容量的通用容量型NAS檔案系統,其初始讀頻寬為150 MB/s。如果您的ECS內網頻寬為100 Mbps,則吞吐最大可達12.5 MB/s,如果要測試達到150 MB/s,則需要至少12台ECS進行測試。 如果您的ECS內網頻寬為1 Gbps,則吞吐最大可達到125 MB/s,如果要測試達到150 MB/s,則需要至少2台ECS進行測試。

  • 在Linux作業系統中,NFS用戶端對於同時發起的NFS請求數量進行了控制,預設編譯的核心中此參數值為2,嚴重影響效能。請在安裝NFS用戶端後,修改同時發起的NFS請求數量,提高NFS效能。具體操作,請參見如何修改同時發起的NFS請求數量?

  • 在Windows作業系統中,測試NFS協議NAS檔案系統效能會受限於Windows NFS用戶端串列執行單個檔案系統的請求,請調整-numjobs參數增加FIO測試檔案數量。

操作步驟

  1. 遠端連線ECS執行個體。具體操作,請參見ECS串連方式

  2. 安裝FIO測試載入器。如果已安裝,請跳過此步驟,直接運行效能測試命令。

    • Linux作業系統

      作業系統

      安裝命令

      CentOS

      sudo yum install fio

      Redhat

      Alibaba Cloud Linux

      Ubuntu

      依次執行以下安裝命令:

      1. sudo apt-get  update
      2. sudo apt-get install fio

      Debian

    • Windows作業系統

      您可以下載msi格式的安裝包進行安裝。FIO安裝包下載地址,請參見fio官網

  3. 運行效能測試命令,具體的命令請參見下文。

Linux系統下的效能測試命令

本節以通用容量型NAS為例,在單台Linux ECS中執行以下命令測試效能。

  • 隨機讀IOPS:

    fio -numjobs=1 -iodepth=128 -direct=1 -ioengine=libaio -sync=1 -rw=randread -bs=4K -size=1G -time_based -runtime=60 -name=Fio -directory=/mnt

    測試結果範例:

    image.png

  • 隨機寫IOPS:

    fio -numjobs=1 -iodepth=128 -direct=1 -ioengine=libaio -sync=1 -rw=randwrite -bs=4K -size=1G -time_based -runtime=60 -name=Fio -directory=/mnt

    測試結果範例:

    image.png

  • 隨機讀吞吐:

    fio -numjobs=1 -iodepth=128 -direct=1 -ioengine=libaio -sync=1 -rw=randread -bs=1M -size=1G -time_based -runtime=60 -name=Fio -directory=/mnt

    測試結果範例:

    image.png

  • 隨機寫吞吐:

    fio -numjobs=1 -iodepth=128 -direct=1 -ioengine=libaio -sync=1 -rw=randwrite -bs=1M -size=1G -time_based -runtime=60 -name=Fio -directory=/mnt

    測試結果範例:

    image.png

Windows系統下的效能測試

本節以通用容量型NAS掛載到Z盤,FIO可執行檔安裝在C:\Program Files\fio\fio.exe為例,執行以下命令測試效能。

說明

如果在Windows系統測試NFS協議NAS檔案系統效能,受限於Windows NFS用戶端串列執行單個檔案系統的請求,請調整-numjobs參數增加FIO測試檔案數量。

  • 隨機讀IOPS:

    "c:\Program Files\fio\fio.exe" -name=Fio -numjobs=2 -iodepth=128 -direct=1 -ioengine=windowsaio -sync=1 -rw=randread -bs=4K -size=1G -time_based -runtime=60 -group_reporting -thread -directory=Z\:\

    測試結果範例:

    image.png

  • 隨機寫IOPS:

    "c:\Program Files\fio\fio.exe" -name=Fio -numjobs=2 -iodepth=128 -direct=1 -ioengine=windowsaio -sync=1 -rw=randwrite -bs=4K -size=1G -time_based -runtime=60 -group_reporting -thread -directory=Z\:\

    測試結果範例:

    image.png

  • 隨機讀吞吐:

    "c:\Program Files\fio\fio.exe" -name=Fio -numjobs=2 -iodepth=128 -direct=1 -ioengine=windowsaio -sync=1 -rw=randread -bs=1M -size=1G -time_based -runtime=60 -group_reporting -thread -directory=Z\:\

    測試結果範例:

    image.png

  • 隨機寫吞吐:

    "c:\Program Files\fio\fio.exe" -name=Fio -numjobs=2 -iodepth=128 -direct=1 -ioengine=windowsaio -sync=1 -rw=randwrite -bs=1M -size=1G -time_based -runtime=60 -group_reporting -thread -directory=Z\:\

    測試結果範例:

    image.png

FIO參數說明

測試命令中有關FIO各參數含義的說明如下表所示。

參數

說明

direct

表示是否使用direct I/O。預設值:1。

  • 值為1:表示使用direct I/O,忽略I/O緩衝,資料直寫。

  • 值為0:表示不使用direct I/O。

iodepth

表示測試時的IO隊列深度。例如-iodepth=1表示FIO控制請求中的I/O最大個數為1。

rw

表示測試時的讀寫策略。您可以設定為:

  • randwrite:隨機寫。

  • randread:隨機讀。

  • read:順序讀。

  • write:順序寫。

  • randrw:混合隨機讀寫。

ioengine

表示測試時FIO選擇哪種I/O引擎,通常選擇libaio,更符合日常應用模式,更多的選擇請查閱FIO官方文檔。

bs

表示I/O單元的塊大小(block size)。讀取和寫入的值可以以read、write格式單獨指定,其中任何一個都可以為空白以將該值保留為其預設值。

size

表示測試檔案大小。

FIO會將指定的檔案大小全部讀/寫完成,然後才停止測試,除非受到其他選項(例如運行時)的限制。如果未指定該參數,FIO將使用給定檔案或裝置的完整大小。也可以將大小作為1到100之間的百分比給出。例如指定size=20%,FIO將使用給定檔案或裝置完整大小的20%空間。

numjobs

表示測試的並發線程數。

runtime

表示測試時間,即FIO運行時間長度。

如果未指定該參數,則FIO會持續將上述size指定大小的檔案,以每次bs值為塊大小讀/寫完。

group_reporting

表示測試結果顯示模式。

如果指定該參數,測試結果會匯總每個進程的統計資訊,而不是以不同任務來統計資訊。

directory

表示待測試的檔案系統掛載路徑。

name

表示測試工作名稱,可以隨意設定。

有關各參數的更多說明,請參見FIO MAN手冊

相關問題

更多有關NAS效能方面的FAQ,請參見效能說明FAQ