Win10 安裝及使用 fio

1. 啥叫 fio

fio is an I/O tool meant to be used both for benchmark and stress/hardware verification. It has support for 19 different types of I/O engines (sync, mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio, and more), I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, and much more. It can work on block devices as well as files. fio accepts job descriptions in a simple-to-understand text format. Several example job files are included. fio displays all sorts of I/O performance information, including complete IO latencies and percentiles. Fio is in wide use in many places, for both benchmarking, QA, and verification purposes. It supports Linux, FreeBSD, NetBSD, OpenBSD, OS X, OpenSolaris, AIX, HP-UX, Android, and Windows.

FIO是一個(gè)開源的I/O壓力測試工具,主要是用來測試磁盤的IO性能,也可測試cpu,nic的IO性能。它可以支持13種不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, network, syslet, guasi, solarisaio, I/Opriorities (針對新的Linux內(nèi)核), rate I/O, forked or threaded jobs等。

2. 什么時(shí)候需要使用 fio

這不廢話么,當(dāng)你需要了解你的硬件性能,以便指導(dǎo)你軟件開發(fā)的時(shí)候,就用到啦。

舉個(gè)栗子: MySQL ,我想設(shè)置 InnoDB 的 innodb_io_capacity 參數(shù),就需要知道磁盤的 IOPS,這時(shí)候你就需要 fio 了。

3. 下載

戳這兒:https://bluestop.org/fio/,根據(jù)你自己電腦的位數(shù),選擇合適的版本下載。

4. 安裝

雙擊下載好的 fio-3.12-x64.msi,一路安裝即可。
安裝結(jié)束后,打開終端,輸入 fio -version,若顯示版本號,則安裝成功。

圖1 查看fio版本.png

5. 使用

可以使用fio -help查看每個(gè)參數(shù)。

filename=/dev/emcpowerb 支持文件系統(tǒng)或者裸設(shè)備,-filename=/dev/sda2或-filename=/dev/sdb
direct=1                 測試過程繞過機(jī)器自帶的buffer,使測試結(jié)果更真實(shí)
rw=randwread             測試隨機(jī)讀的I/O
rw=randwrite             測試隨機(jī)寫的I/O
rw=randrw                測試隨機(jī)混合寫和讀的I/O
rw=read                  測試順序讀的I/O
rw=write                 測試順序?qū)懙腎/O
rw=rw                    測試順序混合寫和讀的I/O
bs=4k                    單次io的塊文件大小為4k
bsrange=512-2048         同上,提定數(shù)據(jù)塊的大小范圍
size=5g                  本次的測試文件大小為5g,以每次4k的io進(jìn)行測試
numjobs=30               本次的測試線程為30
runtime=1000             測試時(shí)間為1000秒,如果不寫則一直將5g文件分4k每次寫完為止
ioengine=psync           I/O引擎,現(xiàn)在fio支持19種ioengine。默認(rèn)值是sync同步阻塞I/O,libaio是Linux的native異步I/O。關(guān)于同步異步,阻塞和非阻塞模型可以參考文章“使用異步 I/O 大大提高應(yīng)用程序的性能”。[http://www.ibm.com/developerworks/cn/linux/l-async/]
iodepth                  如果ioengine采用異步方式,該參數(shù)表示一批提交保持的io單元數(shù)。該參數(shù)可參考文章“Fio壓測工具和io隊(duì)列深度理解和誤區(qū)”。[http://blog.yufeng.info/archives/2104]
rwmixwrite=30            在混合讀寫的模式下,寫占30%
group_reporting          關(guān)于顯示結(jié)果的,匯總每個(gè)進(jìn)程的信息
此外
lockmem=1g               只使用1g內(nèi)存進(jìn)行測試
zero_buffers             用0初始化系統(tǒng)buffer
nrfiles=8                每個(gè)進(jìn)程生成文件的數(shù)量

下面的語句是我用來測試磁盤 隨機(jī)讀寫 的命令:

 fio -filename=E: -direct=1 -iodepth=1 -thread -rw=randrw -ioengine=windowsaio -bs=16k -size=5g -numjobs=10 -runtime=1000 -group_reporting -name=mytest 

5.1. 實(shí)踐-機(jī)械硬盤(希捷 ST500LM021-1KJ152 500G 7200轉(zhuǎn)/分)

測試中.png

測試進(jìn)行了16min(從這里也可以看出機(jī)械硬盤的I/O性能確實(shí)很差,當(dāng)然測試時(shí)間還受 CPU 性能和內(nèi)存影響)

測試完成.png

可知,機(jī)械硬盤的隨機(jī) IPOS 為 95,果然很小啊。

5.2. 實(shí)踐-固態(tài)硬盤(三星 SSD 970 EVO 250GB)

由于固態(tài)硬盤用作了C盤,所以 -filename 設(shè)為 c:。
測試很快完成:


測試完成.png

可知,固態(tài)硬盤的隨機(jī) IPOS 為 12.5k,是機(jī)械硬盤的1000倍。(當(dāng)然我的機(jī)械硬盤是公司筆記本上的,性能會比較差。機(jī)械硬盤的隨機(jī) IOPS 一般是幾百。)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 有時(shí)候購買的商品,屬性很多,想做成表格進(jìn)行篩選。自然用技術(shù)宅的爬蟲方式做了 ```python # -*- ...
    超哥__閱讀 4,463評論 0 8
  • 作為一個(gè)分布式數(shù)據(jù)系統(tǒng)的開發(fā)者,對硬件需要有一些基本的常識。對這些東西的了解程度,決定了你能在多大程度上預(yù)測系統(tǒng)的...
    lazyop閱讀 3,214評論 0 0
  • 一、Sass 的基本特性 - 基礎(chǔ) 變量 聲明變量Sass 的變量包括三個(gè)部分:聲明變量的符號 “$”變量名稱(如...
    ManShow先生閱讀 479評論 0 0
  • ---After reading the book how to start a startup I never ...
    Hecyzy閱讀 397評論 0 0
  • 小新喜歡一個(gè)人來,一個(gè)人往。一個(gè)人在家,一個(gè)人走路。 于是有人問,你一個(gè)人在家不怕嗎? 小新答,為什么要怕,怕鬼?...
    凡語梵音閱讀 425評論 0 1

友情鏈接更多精彩內(nèi)容