国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Fio工具詳解【強(qiáng)大的IO性能壓測工具】

這篇具有很好參考價值的文章主要介紹了Fio工具詳解【強(qiáng)大的IO性能壓測工具】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

Fio壓測工具操作

fio -name=iouring_test -filename=/mnt/vdd/testfile -iodepth=128 -thread -rw=randread -ioengine=io_uring -sqthread_poll=1 -direct=1 -bs=4k -size=10G -numjobs=1 -runtime=120 -group_reporting

常用參數(shù)

[time]

runtime=time

? 告訴fio在指定的時間段后終止處理。很難確定指定作業(yè)將運(yùn)行多長時間,因此此參數(shù)可以方便的將總運(yùn)行時間限制為給定時間。當(dāng)省略單位時間,該數(shù)值以秒為單位進(jìn)行解釋。

time_based

? 如果設(shè)置,即使文件被完全讀取或?qū)懭?,fio也將在指定的運(yùn)行期間運(yùn)行。它會在runtime準(zhǔn)許時間內(nèi)多次循環(huán)相同的工作負(fù)載。

ramp_time=time

? 如果設(shè)置,fio將在記錄任何性能數(shù)據(jù)之前這段時間內(nèi)運(yùn)行指定的工作負(fù)載。有助于在記錄結(jié)果之前,讓性能穩(wěn)定下來,從而最大限度的減少穩(wěn)定結(jié)果所需的運(yùn)更新時間。請注意,ramp_time被認(rèn)為是作業(yè)的提前信息,因此如果指定了特殊的超時或者運(yùn)行時間,它將增加總運(yùn)行時間。當(dāng)省略單位時,該值以秒為單位。可以減少日志對高速IO的影響。

[I/O tpye]

direct=bool

? 是否使用 direct io,測試過程不使用OS 自帶的buffer,使測試磁盤的結(jié)果更真實(shí)。Linux讀寫的時候,內(nèi)核維護(hù)了緩存,數(shù)據(jù)先寫到緩存,后面在后臺寫到SSD。讀的時候也優(yōu)先讀緩存里的數(shù)據(jù)。這樣速度可以加快,但是一旦掉電,緩存里的數(shù)據(jù)就沒有了。所以有一種模式叫做direct io,跳過緩存,直接讀寫SSD。

rw=randwrite

? 測試隨機(jī)寫的I/O:

? 順序IO是指讀寫操作的訪問地址順序連接,順序的操作磁道搜索時間顯著減少,因?yàn)榇蓬^可以以最小的移動訪問下一塊?!緮?shù)據(jù)備份和日志記錄都是順序IO業(yè)務(wù)】

? 隨機(jī)IO是指讀寫操作時間連續(xù),但是訪問地址不連續(xù),隨機(jī)分布在磁盤的地址空間中。產(chǎn)生隨機(jī)IO的業(yè)務(wù)有OLTP服務(wù),SQL等。

rw=randrw

? 測試隨機(jī)寫或者讀的IO

rwmixwrite=int

? 在混合讀寫模式下,寫占用30%。

[Blocks size]

bs=int

? 單次IO的塊文件大小為16k

bsrange=1k-4k,2k-8k,1k-4k

? 指定數(shù)據(jù)塊的大小范圍,可以為讀取、寫入和修剪指定逗號分割的范圍。

size=5G

? 每個線程讀寫的數(shù)據(jù)量是5GB

[Job description]

name=str

? 一個任務(wù)的名字,重復(fù)了也沒關(guān)系。如果fio -name=job1 -name=job2,建立了兩個任務(wù),共享-name=job1之前的參數(shù)。-name=job1之后的就是job2任務(wù)獨(dú)有的參數(shù)。

numjobs=int

? 創(chuàng)建此作業(yè)的指定數(shù)量的克隆。每個作業(yè)克隆都作為一個獨(dú)立的線程或者進(jìn)程產(chǎn)生(執(zhí)行相同工作的進(jìn)程或者線程)。每個Job(任務(wù))開1個線程,有多少 -name 就開多少個線程。所以最終線程數(shù) = 任務(wù)數(shù) (-name 的數(shù)量) * numjiobs。

filename=str

? 測試文件的名稱。指定相對路徑或者絕對路徑。沒有的話會自行創(chuàng)建。

[Threads, processes and job synchronization]

thread

? Fio默認(rèn)使用fork創(chuàng)建作業(yè),如果給出此選項(xiàng),將會以pthread_create(3) 創(chuàng)建作業(yè)。使用fork創(chuàng)建線程的開銷比較大。

threads=int

? 指定線程的數(shù)量

[I/O engine]

ioengine=<str>

? str: sync 基本的同步·讀寫操作,參考fsync和fdatasync

? str:psync 基于 pread(2) 或者 pwrite(2) 進(jìn)行IO操作。

? str:vsync

? str:pvsync

? str:pvsync2:

? str:io_uring 快速的Linux原生異步I/O。支持直接和緩沖IO操作。

? str:io_uring_cmd 用于傳遞命令的快速Linux本機(jī)異步I/O。

? str:libaio linux異步I/O。注意:Linux可能只支持具有非緩沖I/O的排隊(duì)行為(設(shè)置為direct=1buffered=0: rbd:通過librbd直接訪問CEPH Rados

userspace_reap:[libaio]

? 通常,在使用libaio引擎的情況下,fio將使用io_getevents(2)系統(tǒng)調(diào)用來獲取新返回的事件。打開此標(biāo)志后,將直接從客戶空間讀取AIO環(huán)以獲取事件。提高異步IO的收割速度。當(dāng)輪詢至少0個事件時候,收割模式才會啟動。(iodepth_batch_complete=0)

[IO depth]

iodepth=int

? 隊(duì)列的深度。在異步模式下,CPU不能一直無限的發(fā)命令到SSD。比如SSD執(zhí)行讀寫如果發(fā)生了卡頓,那有可能系統(tǒng)會一直不停的發(fā)命令,幾千個,甚至幾萬個,這樣一方面SSD扛不住,另一方面這么多命令會很占內(nèi)存,系統(tǒng)也要掛掉了。

iodepth 技巧

大致把延遲分為兩部分,第一部分是讀寫本身需要的時間ts,第二部分是路上的網(wǎng)絡(luò)、上下文切換時間tl。

iodepth可降低tl占比,提高ts占比:
iodepth可以批量提交請求,所以可以降低上下文切換的次數(shù)。
當(dāng)ts本身占比很高的時候,那就沒有提升的空間了。
如果ts占比較低,通過提高iodepth就可以提升iops。

[Buffers and memory]

lockmem=int

? 使用mlock(2)固定指定數(shù)量的內(nèi)存??捎糜谀M較小的內(nèi)存量。只使用指定內(nèi)存進(jìn)行測試。

zero_buffers

? 用全零初始化緩沖區(qū)。默認(rèn)值:用隨機(jī)數(shù)據(jù)填充緩沖區(qū)。

[Target file/device]

nrfiles=int

? 用于此作業(yè)文件數(shù)。默認(rèn)為1.除非文件大小明確指定大小,否則文件大小將是數(shù)據(jù)量除以nrfiles的大小。文件是為每個線程單獨(dú)創(chuàng)建的。默認(rèn)情況下,每個文件的名稱中都有一個文件編號。

opendir=str

? 讓fio遞歸的添加目錄下和子目錄下的所有文件。

[command line options]

--output=filename

? 輸出日志信息到指定的文件。

--output-format=format

? 指定輸出文件的格式。將日志格式設(shè)置為normal、terse、json 或 json+??梢赃x擇多種格式,以逗號分隔。terse 是一種基于 CSV 的格式。json+ 類似于 json,只是它添加了延遲存儲桶的完整轉(zhuǎn)儲。

[Measurements and reporting]

group_reporting

? 關(guān)于顯示結(jié)果的,匯總每個進(jìn)程的信息。

stats=bool

? 默認(rèn)情況下,fio收集并顯示所有運(yùn)行的作業(yè)的最終輸出結(jié)果。如果此選項(xiàng)設(shè)置為0,則fio將在最終統(tǒng)計(jì)輸出中忽略它。

write_bw_log=str

? 如果給定,為此作業(yè)編寫帶寬日志??梢杂糜诖鎯ψ鳂I(yè)在其生命周期內(nèi)的寬帶數(shù)據(jù)。

write_lat_log=str

? 與write_bw_log相同,只是此選項(xiàng)創(chuàng)建 I/O 提交(例如,name_slat.x.log)、完成(例如,name_clat.x.log)和總(例如,name_lat.x.log)延遲文件。有關(guān)文件名格式的詳細(xì)信息,請參閱write_bw_log,并了解數(shù)據(jù)在文件中的結(jié)構(gòu),請參閱日志文件格式。

write_hist_log=str

? 與write_bw_log相同,但改為寫入I/O完成延遲直方圖(例如 name_hist.x.log)。


fio壓測示例

#針對io_uring的fixedufs特性
fio -threads=8 -size=10G -name=test -group_reporting -filename=./io.tmp -runtime=60 --ioengine=io_uring --iodepth=512 --fixedbufs 

#針對io_uring的sqthread_poll特性
fio -threads=8 -size=10G -name=test -group_reporting -filename=./io.tmp -runtime=60 --ioengine=io_uring --iodepth=512 --sqthread_poll 1

日志數(shù)據(jù)說明

[root@docker sda]# fio -ioengine=libaio -bs=4k -direct=1 -thread -rw=read -filename=/dev/sda -name="BS 4KB read test" -iodepth=16 -runtime=60
BS 4KB read test: (g=0): rw=read, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=16
fio-3.7
Starting 1 thread
Jobs: 1 (f=1): [R(1)][100.0%][r=89.3MiB/s,w=0KiB/s][r=22.9k,w=0 IOPS][eta 00m:00s]
BS 4KB read test: (groupid=0, jobs=1): err= 0: pid=18557: Thu Apr 11 13:08:11 2019
   read: IOPS=22.7k, BW=88.5MiB/s (92.8MB/s)(5313MiB/60001msec)
    slat (nsec): min=901, max=168330, avg=6932.34, stdev=1348.82
    clat (usec): min=90, max=63760, avg=698.08, stdev=240.83
     lat (usec): min=97, max=63762, avg=705.17, stdev=240.81
    clat percentiles (usec):
     |  1.00th=[  619],  5.00th=[  627], 10.00th=[  627], 20.00th=[  635],
     | 30.00th=[  635], 40.00th=[  685], 50.00th=[  717], 60.00th=[  725],
     | 70.00th=[  725], 80.00th=[  725], 90.00th=[  734], 95.00th=[  816],
     | 99.00th=[ 1004], 99.50th=[ 1020], 99.90th=[ 1057], 99.95th=[ 1057],
     | 99.99th=[ 1860]
   bw (  KiB/s): min=62144, max=91552, per=100.00%, avg=90669.02, stdev=3533.77, samples=120
   iops        : min=15536, max=22888, avg=22667.27, stdev=883.44, samples=120
  lat (usec)   : 100=0.01%, 250=0.01%, 500=0.01%, 750=93.85%, 1000=5.14%
  lat (msec)   : 2=0.99%, 4=0.01%, 10=0.01%, 50=0.01%, 100=0.01%
  cpu          : usr=5.35%, sys=23.17%, ctx=1359692, majf=0, minf=17
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=100.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.1%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=1360097,0,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=16
 
Run status group 0 (all jobs):
   READ: bw=88.5MiB/s (92.8MB/s), 88.5MiB/s-88.5MiB/s (92.8MB/s-92.8MB/s), io=5313MiB (5571MB), run=60001-60001msec
 
Disk stats (read/write):
  sda: ios=1357472/0, merge=70/0, ticks=949141/0, in_queue=948776, util=99.88%

[io=執(zhí)行多少M(fèi)的IO]

參數(shù) 內(nèi)容
bw 平均IO帶寬
iops IOPS
runt 線程運(yùn)行時間
slat 提交延遲,提交該IO請求到kernel所花的時間(不包括kernel處理的時間)
clat 完成延遲, 提交該IO請求到kernel后,處理所花的時間
lat 響應(yīng)時間
bw 帶寬
cpu 利用率
IO depths io隊(duì)列
IO submit 單個IO提交要提交的IO數(shù)
IO complete Like the above submit number, but for completions instead.
IO issued 發(fā)出的讀寫請求數(shù)量,以及數(shù)量不足的請求
IO laencies IO完成延遲的分布

[io=總共執(zhí)行了多少size的IO]

參數(shù) 內(nèi)容
aggrb group總帶寬
minb 最小平均帶寬
maxb 最大平均帶寬
mint group中線程的最短運(yùn)行時間
maxt group中線程的最長運(yùn)行時間
ios 所有g(shù)roup總共執(zhí)行的IO數(shù)
merge 總共發(fā)生的IO合并數(shù)
ticks Number of ticks we kept the disk busy
io_queue 花費(fèi)在隊(duì)列上的總共時間
util 磁盤利用率

圖像化工具GFIO

yum install gtk2 gtk2-devel gtk2-devel-docs //安裝依賴項(xiàng)
git clone git://git.kernel.dk/fio.git
cd fio*
./configure --enable-gfio 
make fio
make gfio
./fio -S
fio:server listening on 0.0.0.0, 8765 //開啟服務(wù)端

參考 link

1. fio - Flexible I/O tester rev. 3.32 — fio 3.32-43-g0ebd3-dirty documentation
(105條消息) linux FIO命令詳解(一):磁盤IO測試工具 fio (并簡要介紹iostat工具)_Yannick_J的博客-CSDN博客_fio命令
(105條消息) 【詳細(xì)齊全】FIO使用方法 及參數(shù)解析(文章末尾)_天健胡馬靈越鳥的博客-CSDN博客_fio官網(wǎng)
FIO測試工具中的iodepth具體指的是什么? - 知乎 (zhihu.com)
fio - OpenAnolis 龍蜥操作系統(tǒng)開源社區(qū)文章來源地址http://www.zghlxwxcb.cn/news/detail-789457.html

到了這里,關(guān)于Fio工具詳解【強(qiáng)大的IO性能壓測工具】的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Linux性能測試工具 stress,stress-ng,sysbench,fio以及檢測dstat

    Linux性能測試工具 stress,stress-ng,sysbench,fio以及檢測dstat

    通過man幫助,可以看到官方對dstat的定義為:多功能系統(tǒng)資源統(tǒng)計(jì)生成工具(?versatile tool for generating system resource statistics)。在獲取的信息上有點(diǎn)類似于top、free、iostat、vmstat等多個工具的合集,官方解釋為vmstat、iostat、ifstat等工具的多功能替代品,且添加了許多額外的功能(

    2024年02月05日
    瀏覽(24)
  • Linux fio測試硬盤性能

    Linux fio測試硬盤性能

    在Linux系統(tǒng)中,測試硬盤的性能一般使用fio工具實(shí)現(xiàn),fio是Flexible I/O Tester的縮寫。是一個常受歡迎的、用于測試存儲性能的工具,而且還可以模擬多種不同的I/O模式和工作負(fù)載。 一般我們要測試一塊硬盤的性能,一般需要進(jìn)行 隨機(jī)寫入測試、隨機(jī)讀取測試、順序?qū)懭霚y試、

    2024年02月08日
    瀏覽(19)
  • fio性能測試-環(huán)境搭建,功能介紹,測試講解

    fio性能測試-環(huán)境搭建,功能介紹,測試講解

    fio性能測試-環(huán)境搭建,功能介紹,測試講解 Fio介紹:FIO(Flexible I/O Tester)是一個用于測試磁盤、文件系統(tǒng)、塊設(shè)備和網(wǎng)絡(luò)設(shè)備性能的工具。它可以模擬不同類型的I/O負(fù)載,包括隨機(jī)或順序讀寫、混合讀寫、隨機(jī)或順序訪問等。FIO提供了豐富的選項(xiàng)和參數(shù),可以對測試進(jìn)行高

    2023年04月13日
    瀏覽(19)
  • fio工具及使用

    在實(shí)際測試中需要對硬盤有較為完整的測試,之前一直使用IOzone,但發(fā)現(xiàn)測試結(jié)果并不能完全反映出硬盤的整體性能,所以開始使用fio進(jìn)行測試,fio測試參數(shù)過多,現(xiàn)寫出我實(shí)際中使用的參數(shù),文末附有在其他論壇查看到的較為完整的fio參數(shù)解讀 FIO是一個非常簡單好用的性能

    2024年02月05日
    瀏覽(24)
  • 手撕測試tcp服務(wù)器效率工具——以epoll和io_uring對比為例

    手撕測試tcp服務(wù)器效率工具——以epoll和io_uring對比為例

    服務(wù)器的性能測試主要包括2部分: 并發(fā)量。能容納多大的連接 效率。在不崩壞的情況下能對報文的處理效率。 本文主要進(jìn)行效率測試,看看基于epoll模型和io_uring模型的tcp服務(wù)器,誰的效率更高。 測試思路 客戶端(一個或多個)大量地向服務(wù)器發(fā)送報文,測試服務(wù)器的處理

    2024年01月18日
    瀏覽(23)
  • io_uring筆記

    io_uring筆記

    要求內(nèi)核linux 5.10 異步四元組:1、init(create)2、commit 3、callback 4、destory fio : 測iops一秒鐘讀寫磁盤的次數(shù) 方式 磁盤iops io_uring 11.6k libaio 10.7k psync 5k spdk(內(nèi)存操作 , 盡可能都放到用戶態(tài)) 157k io_uring內(nèi)核api: io uring. setup(); io uring register(); io_ uring_ enter(); liburing接口: io_uring. _

    2024年02月13日
    瀏覽(15)
  • 使用C++20協(xié)程和io_uring優(yōu)雅地實(shí)現(xiàn)異步IO

    距離2020年已經(jīng)過去很久了,各大編譯器對于C++20各項(xiàng)標(biāo)準(zhǔn)的支持也日趨完善,無棧協(xié)程也是其中之一,所以我就嘗試著拿協(xié)程與 io_uring 實(shí)現(xiàn)了一下proactor模式,這篇文章用來記錄一下我的設(shè)計(jì)和想法。除此之外,我們能在網(wǎng)絡(luò)上找到許多優(yōu)秀的C++20協(xié)程的教程以及許多優(yōu)秀的

    2024年03月27日
    瀏覽(22)
  • 【探索Linux】—— 強(qiáng)大的命令行工具 P.11(基礎(chǔ)IO,文件操作)

    【探索Linux】—— 強(qiáng)大的命令行工具 P.11(基礎(chǔ)IO,文件操作)

    前面我們講了C語言的基礎(chǔ)知識,也了解了一些數(shù)據(jù)結(jié)構(gòu),并且講了有關(guān)C++的一些知識,也學(xué)習(xí)了一些Linux的基本操作,也了解并學(xué)習(xí)了有關(guān)Linux開發(fā)工具vim 、gcc/g++ 使用、yum工具以及git 命令行提交代碼也相信大家都掌握的不錯,上一篇文章我們了解了關(guān)于進(jìn)程的地址空間,今

    2024年02月08日
    瀏覽(18)
  • FIO 安裝方法

    FIO 安裝方法

    ????????yum安裝,不同版本的OS會根據(jù)倉庫里的fio版本來安裝 ????????使用異步模式,需要下載libaio ? ? ? ? 查看fio版本 2.1、進(jìn)入官網(wǎng): fio tools 2.2、上傳至Linux中,也可以使用wget命令來下載 2.3、安裝編譯環(huán)境gcc 2.4、下載后進(jìn)行解壓,在指定目錄安裝 注:--prefix? ?

    2024年02月08日
    瀏覽(18)
  • 【探索Linux】—— 強(qiáng)大的命令行工具 P.12(文件描述符 | 重定向 | 基礎(chǔ)IO)

    【探索Linux】—— 強(qiáng)大的命令行工具 P.12(文件描述符 | 重定向 | 基礎(chǔ)IO)

    前面我們講了C語言的基礎(chǔ)知識,也了解了一些數(shù)據(jù)結(jié)構(gòu),并且講了有關(guān)C++的一些知識,也學(xué)習(xí)了一些Linux的基本操作,也了解并學(xué)習(xí)了有關(guān)Linux開發(fā)工具vim 、gcc/g++ 使用、yum工具以及git 命令行提交代碼也相信大家都掌握的不錯,上一篇文章我們了解了基礎(chǔ)IO,文件操作,今天

    2024年02月08日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包