首页
/
每日頭條
/
生活
/
freenas動态分配磁盤
freenas動态分配磁盤
更新时间:2024-11-29 22:02:04
簡介

FIO是測試IOPS的非常好的工具,用來對硬件進行壓力測試和驗證。磁盤IO是檢查磁盤性能的重要指标,可以按照負載情況分成照順序讀寫,随機讀寫兩大類。

目前主流的第三方IO測試工具有fio、iometer 、 Orion,這三種工具各有千秋,在linux 下也可以使用dd 進行簡單的磁盤(文件系統)測試(文末補充)。

fio在Linux系統下使用比較方便,iometer在window系統下使用比較方便,Orion是oracle的IO測試軟件,可在沒有安裝oracle數據庫的情況下模拟oracle數據庫場景的讀寫。

Multithreaded IO generation tool , FIO 是一個多線程io生成工具,可以生成多種IO模式,用來測試磁盤設備的性能(也包含文件系統:如針對網絡文件系統 NFS 的IO測試);

Description : fio is an I/O tool that will spawn a number of threads or processes doing

: a particular type of io action as specified by the user. fio takes a

: number of global parameters, each inherited by the thread unless

: otherwise parameters given to them overriding that setting is given.

: The typical use of fio is to write a job file matching the io load

: one wants to simulate.

安裝

測試磁盤之前,磁盤最好是空的,也就是格式化的,如果磁盤已經有了内容, 需要卸載-格式化-挂載 # 卸載磁盤 umount /mnt/datadir1 # 格式化磁盤 mkfs.ext4 /dev/sdd # 挂載磁盤 mount -t ext4 /dev/sdd /mnt/datadir1 # 自動挂載,在裡面添加該盤 vim /etc/fstab (見下圖,可以在該文件下設置挂載) 安裝fio yum install fio

freenas動态分配磁盤(使用FIO測試磁盤與網絡情況)1

使用簡介

從測試角度出發,一般有如下的測試設計:

序号

模塊

用例

結果

1

磁盤IO測試

1M順序寫吞吐量

IOPS=353, BW=353MiB/s (371MB/s)(50.0GiB/144874msec)

2

磁盤IO測試

1M順序讀吞吐量

IOPS=1349, BW=1350MiB/s (1415 MB/s)(50.0GiB/37937msec)

3

磁盤IO測試

4K随機寫IOPS

IOPS=6057, BW=23.7MiB/s (24.8MB/s)(10.0GiB/432743msec)

4

磁盤IO測試

4K随機讀IOPS

IOPS=20.0k, BW=81.9MiB/s (85.9MB/s)(10.0GiB/125065msec)

說明

  1. IOPS IOPS(Input/Output Operations Per Second)每秒讀寫的次數

2. 50.0GiB/144874msec=353MiB/s=371MB/s

MiB/s的意思是每秒中傳輸2^20 byte的數據,不太常用,一般需要轉換成MB/S,MB/s=MiB/s *1.024

測試命令:

fio -direct=1 -iodepth=32 -rw=write -ioengine=libaio -bs=1024k -size=50G -numjobs=1 -runtime=600 -group_reporting -filename=/mnt/test/fiotest.txt -name=Write_BandWidth_Test

fio -direct=1 -iodepth=32 -rw=read -ioengine=libaio -bs=1024k -size=50G -numjobs=1 -runtime=600 -group_reporting -filename=/mnt/test/fiotest.txt -name=Read_BandWidth_Test

fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=10G -numjobs=1 -runtime=600 -group_reporting -filename=/mnt/test/fiotest.txt -name=Rand_Write_IOPS_Test

fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=10G -numjobs=1 -runtime=600 -group_reporting -filename=/mnt/test/fiotest.txt -name=Rand_Read_IOPS_Test

命令參數說明:

filename=/dev/sdb1 測試文件名稱,通常選擇需要測試的盤的data目錄。direct=1 是否使用directIO,測試過程繞過OS自帶的buffer,使測試磁盤的結果更真實。

  • Linux讀寫的時候,内核維護了緩存,數據先寫到緩存,後面再後台寫到SSD。讀的時候也優先讀緩存裡的數據。這樣速度可以加快,但是一旦掉電緩存裡的數據就沒了。所以有一種模式叫做DirectIO,跳過緩存,直接讀寫SSD。

rw=

  • randwrite 測試随機寫的I/O
  • randrw 測試随機寫和讀的I/O
  • write 順序寫
  • read 順序讀

bs=1024k 單次io的塊文件大小為1024kbsrange=512-2048 同上,提定數據塊的大小範圍

size=50G 每個線程讀寫的數據量是50GB。numjobs=1 每個job(任務)開1個線程,這裡用了幾,後面每個用-name指定的任務就開幾個線程測試。所以最終線程數=任務數(幾個name=jobx)* numjobs。name=job1:一個任務的名字,重複了也沒關系。如果fio -name=job1 -name=job2,建立了兩個任務,共享-name=job1之前的參數。-name之後的就是job2任務獨有的參數。thread 使用pthread_create創建線程,另一種是fork創建進程。進程的開銷比線程要大,一般都采用thread測試。runtime=1000 測試時間為1000秒,如果不寫則一直将5g文件分4k每次寫完為止。ioengine=libaio 指定io引擎使用libaio方式。libaio:Linux本地異步I/O。請注意,Linux可能隻支持具有非緩沖I/O的排隊行為(設置為“direct=1”或“buffered=0”);rbd:通過librbd直接訪問CEPH Radosiodepth=16 隊列的深度為16.在異步模式下,CPU不能一直無限的發命令到SSD。比如SSD執行讀寫如果發生了卡頓,那有可能系統會一直不停的發命令,幾千個,甚至幾萬個,這樣一方面SSD扛不住,另一方面這麼多命令會很占内存,系統也要挂掉了。這樣,就帶來一個參數叫做隊列深度。Block Devices(RBD),無需使用内核RBD驅動程序(rbd.ko)。該參數包含很多ioengine,如:libhdfs/rdma等rwmixwrite=30 在混合讀寫的模式下,寫占30%group_reporting 關于顯示結果的,彙總每個進程的信息。

  • filename 報告的名稱
  • name 此次測試的名稱

此外lockmem=1g 隻使用1g内存進行測試。zero_buffers 用0初始化系統buffer。nrfiles=8 每個進程生成文件的數量。

磁盤讀寫常用測試點:

  • 1. Read=100% Ramdon=100% rw=randread (100%随機讀)
  • 2. Read=100% Sequence=100% rw=read (100%順序讀)
  • 3. Write=100% Sequence=100% rw=write (100%順序寫)
  • 4. Write=100% Ramdon=100% rw=randwrite (100%随機寫)
  • 5. Read=70% Sequence=100% rw=rw, rwmixread=70, rwmixwrite=30(70%順序讀,30%順序寫)
  • 6. Read=70% Ramdon=100% rw=randrw, rwmixread=70, rwmixwrite=30(70%随機讀,30%随機寫)
dd簡單測試磁盤 (dd 是linux自帶的,不用安裝,功能沒有fio全面,适用于簡單的磁盤測試)

[root@docker ~]# dd if=/dev/zero of=test bs=8k count=10000 oflag=direct10000 0 records in10000 0 records out81920000 bytes (82 MB) copied, 0.876059 s, 93.5 MB/s

[root@docker ~]# dd if=test of=/dev/null bs=8k count=10000 iflag=direct10000 0 records in10000 0 records out81920000 bytes (82 MB) copied, 5.06434 s, 16.2 MB/s

/dev/null,它是空設備,也稱為位桶(bit bucket)、回收站、無底洞,可以向它輸出任何數據。任何寫入它的輸出都會被抛棄。如果不想讓消息以标準輸出顯示或寫入文件,那麼可以将消息重定向到位桶。

/dev/zero,是一個輸入設備,可用它來初始化文件。該設備無窮盡地提供0,可以使用任何需要的數目——設備提供的要多的多。他可以用于向設備或文件寫入字符串0。

if=file 輸入文件名,缺省為标準輸入。 從file讀取,如if=/dev/zero,該設備無窮盡地提供0,(不産生讀磁盤IO) of=file 輸出文件名,缺省為标準輸出。 向file寫出,可以寫文件,可以寫裸設備。如of=/dev/null,"黑洞", ibs=bytes    一次讀入 bytes 個字節(即一個塊大小為 bytes 個字節)。 obs=bytes   一次寫 bytes 個字節(即一個塊大小為 bytes 個字節)。 bs=bytes    同時設置讀寫塊的大小為 bytes ,可代替 ibs 和 obs。如bs=8k 每次讀或寫的大小,即一個塊的大小為8K。 cbs=bytes    一次轉換 bytes 個字節,即轉換緩沖區大小。 skip=blocks   從輸入文件開頭跳過 blocks 個塊後再開始複制。 seek=blocks 從輸出文件開頭跳過 blocks 個塊後再開始複制。(通常隻有當輸出文件是磁盤或磁帶時才有效)。 count=blocks   僅拷貝 blocks 個塊,塊大小等于 ibs 指定的字節數。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
陳紫函好看嗎
陳紫函好看嗎
随着耽改劇《山河令》的熱播,番位一女配:周也飾演的顧湘(溫客行的侍女)顔值與演技雙雙被觀衆吐槽。其實一開始放出的劇照還好,給人一種很飒的感覺,本以為打戲會很精彩,但是現在完全沒有了那種期待。可能大家對這位九五後小花還不夠了解,周也出生于19...
2024-11-29
山西石雕雕刻之鄉
山西石雕雕刻之鄉
惠安縣,隸屬于福建省泉州市,位于福建省東南沿海,介于泉州灣與湄洲灣之間,東瀕台灣海峽。惠安縣是一個千年曆史古縣,與晉江、南安,合稱泉州三邑。唐朝開元八年(720年),析南安縣置晉江縣,惠安縣境屬晉江縣地。北宋太平興國六年(981年),析晉江...
2024-11-29
送情郎河北民歌
送情郎河北民歌
一不叫你憂來呀二不叫你愁三不叫你穿錯了小妹妹的花兜兜我從來不敢相信命運直到我遇見了你于是雲也散了花也開了天空也放晴能在這最美好的年紀和你在人海相遇這是多幸運的事情讓我如何不害怕失去你是一個自由的人啊你有一顆漂泊的心我知道你會去遙遠地方去你夢...
2024-11-29
國内主要的b2b跨境電商平台有哪些
國内主要的b2b跨境電商平台有哪些
B2B模式是當前電商模式中份額最大、也是最具操作性、最容易成功的模式。賣家通過B2B平台可以向顧客提供出色的服務、獨家的産品、低價的産品與良好的配送服務,從而顧客維持良好的關系、獲取忠誠度。B2B平台可以連接世界各地的供應商和買家,使雙方更...
2024-11-29
大蝦通粉做法步驟
大蝦通粉做法步驟
大蝦通粉做法步驟?蕃茄對切,洋蔥切傳,白蘑切片,配料切細碎,蝦子去頭去殼,背開刀挑線,今天小編就來說說關于大蝦通粉做法步驟?下面更多詳細答案一起來看看吧!大蝦通粉做法步驟蕃茄對切,洋蔥切傳,白蘑切片,配料切細碎,蝦子去頭去殼,背開刀挑線。水...
2024-11-29
Copyright 2023-2024 - www.tftnews.com All Rights Reserved