目錄
安裝" >安裝
說明" >說明
首頁 電腦教學 電腦知識 實戰:Linux上硬碟io讀寫測試

實戰:Linux上硬碟io讀寫測試

Feb 19, 2024 pm 03:40 PM
io 讀寫 fio

概念

fio,又稱為Flexible IO Tester,是Jens Axboe所寫的應用程式。

Jens是Linux Kernel中block IO subsystem的維護者。

FIO是一種用來測試網路檔案系統和磁碟效能的工具,常用於驗證機型和比較檔案系統效能。它能自動將fio指令傳送到群集機器列表,並收集小檔案的IOPS和大檔案的吞吐量資料。

實戰:Linux上硬碟io讀寫測試

#
rw=[mode]
rwmixwrite=30 在混合读写的模式下,写占30%

mode
read 顺序读
write 顺序写
readwrite 顺序混合读写
randwrite 随机写
randread 随机读
randrw 随机混合读写

安裝

yumdownloader --destdir=/tmp --resolve fio
rpm -ivh /tmp/*.rpm
rpm -ivh fio-3.7-2.el7.x86_64.rpm

說明

说明:
filename=/dev/sdb1 测试文件名称,通常选择需要测试的盘的data目录。
direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。
rw=randwrite 测试随机写的I/O
rw=randrw 测试随机写和读的I/O
bs=16k 单次io的块文件大小为16k
bsrange=512-2048 同上,提定数据块的大小范围
size=5g 本次的测试文件大小为5g,以每次4k的io进行测试。
numjobs=30 本次的测试线程为30.
runtime=1000 测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。
ioengine=psync io引擎使用pync方式
rwmixwrite=30 在混合读写的模式下,写占30%
group_reporting 关于显示结果的,汇总每个进程的信息。
此外
lockmem=1g 只使用1g内存进行测试。
zero_buffers 用0初始化系统buffer。
nrfiles=8 每个进程生成文件的数量。

測試隨機寫頻寬

fio --name=wbw --filename=/data/sui_ji_xie --numjobs=4 
--bs=128k --size=4G --ioengine=libaio --direct=1 --randrepeat=0 --norandommap --rw=randwrite 
--group_reporting --iodepth=512 --iodepth_batch=128 --iodepth_batch_complete=128 --gtod_reduce=1 --runtime=30

測試4K 隨機寫入延遲:

fio --name=wlat --filename=/data/4k_sui_ji_xie --numjobs=1 --runtime=30 
--bs=4k --size=4G --ioengine=libaio --direct=1 --norandommap --randrepeat=0 
-rw=randwrite --group_reporting --iodepth=1 --iodepth_batch_complete=0

測試4k 隨機寫IOPS:

fio --name=wiops --filename=/data/4k_sui_ji_xie_iops --numjobs=4 
--bs=4k --size=4G --ioengine=libaio --direct=1 --randrepeat=0 --norandommap 
--rw=randwrite --group_reporting --iodepth=512 --iodepth_batch=128 
--iodepth_batch_complete=128 --gtod_reduce=1 --runtime=30

測試4k 讀頻寬:

fio --name=rbw --filename=/data/4k_sui_ji_du --numjobs=4 
--bs=128k --size=4G --ioengine=libaio --direct=1 --randrepeat=0 --norandommap 
--rw=randread --group_reporting --iodepth=512 --iodepth_batch=128 
--iodepth_batch_complete=128 --gtod_reduce=1 --runtime=30

測試4k 隨機讀取延遲:

fio --name=rlat --filename=/data/4k_sui_ji_du_yanchi --numjobs=1 --runtime=30 
--bs=4k --size=4G --ioengine=libaio --direct=1 --randrepeat=0 --rw=randread 
--group_reporting --iodepth=1 --iodepth_batch_complete=0

測試4k 隨機讀取IOPS:

fio --name=riops --filename=/data/4k_sui_ji_du_iops --numjobs=4 
--bs=4k --size=4G --ioengine=libaio --direct=1 --randrepeat=0 --norandommap --rw=randread 
--group_reporting --iodepth=512 --iodepth_batch=128 --iodepth_batch_complete=128 --gtod_reduce=1 --runtime=30

隨機讀:

fio -filename=/data/sui_ji_du -iodepth=1 -ioengine=libaio -direct=1 -rw=randread -bs=4k -size=1G -numjobs=10 -runtime=20 -group_reporting -name=test-rand-read

隨機寫:

fio -filename=/data/sui_ji_xie -iodepth=64 -ioengine=libaio -direct=1 -rw=randwrite -bs=4k -size=2G -numjobs=64 -runtime=20 -group_reporting -name=test-rand-write

順序讀:

fio -filename=/data/shun_xu_du -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=20G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

混合隨機讀寫:

fio -filename=/data/hun_he_du_xie -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=10G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop
io=执行了多少M的IO
bw=平均IO带宽
iops=IOPS
runt=线程运行时间
slat=提交延迟
clat=完成延迟
lat=响应时间
bw=带宽
cpu=利用率
IO depths=io队列
IO submit=单个IO提交要提交的IO数
IO complete=Like the above submit number, but for completions instead.
IO issued=The number of read/write requests issued, and how many of them were short.
IO latencies=IO完延迟的分布

io=总共执行了多少size的IO
aggrb=group总带宽
minb=最小.平均带宽.
maxb=最大平均带宽.
mint=group中线程的最短运行时间.
maxt=group中线程的最长运行时间.

ios=所有group总共执行的IO数.
merge=总共发生的IO合并数.
ticks=Number of ticks we kept the disk busy.
in_queue=花费在队列上的总共时间.
util=磁盘利用率

以上是實戰:Linux上硬碟io讀寫測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP教程
1596
276
如何解決 golang 中的 'undefined: io.ReadAll” 錯誤? 如何解決 golang 中的 'undefined: io.ReadAll” 錯誤? Jun 25, 2023 am 10:01 AM

在使用Golang開發過程中,常常會遇到一些錯誤。其中之一是"undefined:io.ReadAll",這個錯誤大多數情況下是由於使用了過時的方法導致的。本文將會介紹如何解決這個錯誤。首先,讓我們來看看發生這個錯誤的原因。在golang1.15版本之前,io套件中並沒有ReadAll方法。我們在使用這個方法時,編譯器會提示「undefined:io.Re

如何使用 PHP 實現資料快取和讀寫功能 如何使用 PHP 實現資料快取和讀寫功能 Sep 05, 2023 pm 05:45 PM

如何使用PHP實現資料快取和讀寫功能快取是提高系統效能的重要方式,透過快取可以將頻繁使用的資料儲存在記憶體中,以提高資料的讀取速度。在PHP中,我們可以使用各種方法來實現資料快取和讀寫功能。本文將介紹兩種常用的方法:使用檔案快取和使用記憶體快取。一、使用檔案快取檔案快取是將資料儲存在檔案中,以便後續讀取。下面是一個使用檔案快取實現資料讀寫的範例程式碼:

如何解決 golang 中的 'undefined: io.TeeReader” 錯誤? 如何解決 golang 中的 'undefined: io.TeeReader” 錯誤? Jun 25, 2023 am 09:51 AM

在使用golang進行開發時,我們經常會遇到各種各樣的問題和錯誤提示。其中一個常見的問題就是出現了「undefined:io.TeeReader」錯誤。這個錯誤通常會在程式編譯時出現,而且有時候可能會讓人束手無策。本文將介紹如何解決這個問題,以便讓您能夠順利地進行golang的開發工作。首先,讓我們來看看這個錯誤的具體意義是什麼。當我們在使用

linux io指的是什麼 linux io指的是什麼 Mar 24, 2023 am 09:43 AM

linux io指的是一種檔案操作;在Linux中,檔案就是一串二進位流,那麼在資訊的交換過程中,我們都是對這些流進行資料收發操作,這些操作簡稱為I/O操作;由於Linux使用的是虛擬記憶體機制,所以必須透過系統呼叫請求核心來完成IO動作。

實戰:Linux上硬碟io讀寫測試 實戰:Linux上硬碟io讀寫測試 Feb 19, 2024 pm 03:40 PM

概念fio,又稱為FlexibleIOTester,是JensAxboe編寫的應用程式。 Jens是LinuxKernel中blockIOsubsystem的維護者。 FIO是一種用於測試網路檔案系統和磁碟效能的工具,常用於驗證機型和比較檔案系統效能。它能自動將fio指令傳送到群集機器列表,並收集小檔案的IOPS和大檔案的吞吐量資料。 rw=[mode]rwmixwrite=30在混合讀寫的模式下,寫佔30%moderead順序讀write順序寫readwrite順序混合讀寫randwrite隨機寫r

Java怎麼使用NIO優化IO實作檔案上傳下載功能 Java怎麼使用NIO優化IO實作檔案上傳下載功能 May 12, 2023 pm 09:31 PM

1NIO的一些基礎預備知識Java中IO流類別的體系中BIO與NIO:https://blog.csdn.net/ZGL_cyy/article/details/104326458JavaIO體系與NIO與BIO體系面試題:https://blog. csdn.net/ZGL_cyy/article/details/122836368為什麼要使用NIO:因為傳統IO檔案傳輸速率低,所以選擇了NIO進行檔案的下載操作。 NIO還有一個好處就是其中零拷貝可以實現減少記憶體中資料的重複,減少CPU操作的效果。所

解密Java中處理DBF檔案的讀取和寫入方法 解密Java中處理DBF檔案的讀取和寫入方法 Mar 29, 2024 pm 12:39 PM

解密Java中處理DBF檔案的讀取和寫入方法DBF(dBASEFile)是一種常見的資料庫檔案格式,通常用於儲存表格資料。在Java程式中,處理DBF檔案的讀取和寫入是一個比較常見的需求。本文將介紹如何使用Java解密此過程,並提供具體的程式碼範例。一、讀取DBF檔案在Java中,讀取DBF檔案通常需要藉助第三方函式庫,例如使用dbfread函式庫。首先需要在項目

Java 中的檔案與IO操作技巧 Java 中的檔案與IO操作技巧 Jun 08, 2023 am 08:25 AM

在Java程式設計中,常常需要對檔案進行IO操作。檔案IO操作涉及讀寫檔案、建立目錄、刪除檔案等操作。本文將介紹一些常用的文件IO操作技巧,以及如何在Java程式中使用它們。一、檔案路徑在Java中操作檔案、目錄,需提供檔案路徑。文件路徑可分為絕對路徑和相對路徑。絕對路徑是檔案在檔案系統中的完整路徑,以根目錄開始。相對路徑是檔案相對於目前工作目錄的路徑。 Jav

See all articles