創(chuàng)新互聯(lián)公司成立與2013年,我們提供高端網站建設、小程序開發(fā)、電商視覺設計、手機APP定制開發(fā)及網絡營銷搜索優(yōu)化服務,在傳統(tǒng)互聯(lián)網與移動互聯(lián)網發(fā)展的背景下,我們堅守著用標準的設計方案與技術開發(fā)實力作基礎,以企業(yè)及品牌的互聯(lián)網商業(yè)目標為核心,為客戶打造具商業(yè)價值與用戶體驗的互聯(lián)網+產品。
https://wiki.mikejung.biz/Benchmarking
譯文有增刪
FIO
Sysbench
Phoronix Test Suite (moved to it's own page)
IOzone
Ioping
UnixBench
Google's Perfkit Benchmarker
fio算是比較老的io測試工具了,作者是Jens Axboe。
主頁https://www.thomas-krenn.com/en/wiki/Fio
我的測試環(huán)境有centos7 redhat5 因此要下載兩個版本的fio包
redhat5 版本的需要去歸檔站點去下載
http://archives.fedoraproject.org/pub/archive/epel/
下載后的安裝 rpm -ivh fio-1.57-1.el5.x86_64.rpm
centos7 則可以去很多鏡像站點下載,站點列表可以查詢
/tupian/20230522/span
如果配置了epel 的yum 源,直接yum install -y fio
示例 使用fio測試磁盤的隨機寫
fio --name=randwrite --ioengine=libaio --iodepth=1 --rw=randwrite --bs=4k \
--direct=0 --size=512M --numjobs=8 --runtime=240 --group_reporting
--rw=randwrite 指定隨機寫
--direct=0 指定使用buffered IO 還是direct IO。如果使用buffer,注意總大小不要超過物理內存
--numjobs=8 啟動8個進程
--size=512M 每個進程寫512M
--group_reporting 將多個進程的統(tǒng)計結果進行聚合,更易閱讀
--runtime=240 持續(xù)運行時間4分鐘
--bs=4k --blocksize=4k (default)
--ioengine=libaio 可用的io引擎可以使用 fio --enghelp查看(fio-2.2.8)
--iodepth=1 缺省 測試ssd磁盤時,可以擴大到32,通常4就夠了
The iodepth option defines the amount of IO units that will continue to hammer a file with requests during the test.
避免使用buffer的方法是指定--direct=1 或者使用比物理內存大一倍的寫文件
fio結果的重點關注項目:
iops=1416 iops = 1416
95.00th=[ 2] 95%的IO在2毫秒完成
util=99.62% 設備繁忙程度
示例 使用fio測試磁盤的隨機讀
fio --name=randread --ioengine=libaio --iodepth=16 --rw=randread --bs=4k \
--direct=0 --size=512M --numjobs=8 --runtime=240 --group_reporting
fio 幫助
man fio
fio -h
fio -v
fio 命令行中寫上選項,也可以將命令行選項寫入一個參數(shù)文件job file中
fio 安裝后,自帶了一些樣例
# rpm -ql -p fio-1.57-1.el5.x86_64.rpm
/usr/bin/fio
/usr/bin/fio_generate_plots
/usr/share/doc/fio-1.57
/usr/share/doc/fio-1.57/COPYING
/usr/share/doc/fio-1.57/HOWTO
/usr/share/doc/fio-1.57/README
/usr/share/doc/fio-1.57/REPORTING-BUGS
/usr/share/doc/fio-1.57/examples
/usr/share/doc/fio-1.57/examples/1mbs_clients
/usr/share/doc/fio-1.57/examples/aio-read
......
aio-read 參數(shù)文件,修改一下可以馬上使用
# fio aio-read.bak
file1: (g=0): rw=randread, bs=128K-128K/128K-128K, ioengine=libaio, iodepth=4
file2: (g=0): rw=randread, bs=128K-128K/128K-128K, ioengine=libaio, iodepth=32
file3: (g=0): rw=randread, bs=128K-128K/128K-128K, ioengine=libaio, iodepth=8
file4: (g=0): rw=randread, bs=128K-128K/128K-128K, ioengine=libaio, iodepth=16
fio 1.57
......
fio 輸出結果的一些注釋
io Number of megabytes of I/O performed.
bw Average data rate (bandwidth).
runt Threads run time.
slat Submission latency minimum, maximum, average and standard deviation. This
is the time it took to submit the I/O.
clat Completion latency minimum, maximum, average and standard deviation. This
is the time between submission and completion.
bw Bandwidth minimum, maximum, percentage of aggregate bandwidth received, average and standard deviation.
The group statistics show:
io Number of megabytes I/O performed.
aggrb Aggregate bandwidth of threads in the group.
minb Minimum average bandwidth a thread saw.
maxb Maximum average bandwidth a thread saw.
mint Shortest runtime of threads in the group.
maxt Longest runtime of threads in the group.
Finally, disk statistics are printed with reads first:
ios Number of I/Os performed by all groups.
merge Number of merges in the I/O scheduler.
ticks Number of ticks we kept the disk busy.
io_queue
Total time spent in the disk queue.
util Disk utilization.
示例 隨機讀直接IO
fio --name=randread --ioengine=libaio --iodepth=16 --rw=randread --bs=4k --direct=1 --size=1G --numjobs=8 --runtime=240 --group_reporting
csdn上一個翻譯成中文的帖子 /tupian/20230522/8722417 沒耐心看英文的估計中文的也不會看完。
sysbench可以測試cpu \ oltp mysql\ fileio 網上用來測試mysql的文章比較多。
在centos 中,可以從epel直接安裝。安裝時需要mysql / postgresql
源文中的安裝方法
wget ftp://ftp.gnome.org/mirror/fedora/epel/6/x86_64/sysbench-0.4.12-5.el6.x86_64.rpm
wget http://downloads.mysql.com/archives/mysql-5.1/MySQL-shared-compat-5.1.49-1.rhel5.x86_64.rpm
rpm -iv MySQL-shared-compat-5.1.49-1.rhel5.x86_64.rpm
yum install postgresql-libs.x86_64
rpm -iv sysbench-0.4.12-5.el6.x86_64.rpm