如何使用fio测试服务器硬盘性能?

前言

  fio是Jens Axboe大神编写的性能测试工具,可以用来测试CPU、网络以及存储等多种设备的性能数据,目前开源在github上(https://github.com/axboe/fio)。 fio的来由是axboe大神在日常性能测试工作中,发现很多重复、繁琐的工作,于是程序员的“惰性”大发,开发了fio这一测试工具——也可称之为框架,因为你可以编写自己的插件。  

如何使用

  1.拷贝

git clone https://github.com/axboe/fio.git   # 国外
git clone https://github.91chi.fun/https://github.com/axboe/fio.git  #国内加速  

  2.安装libaio引擎:

sudo apt-get install libaio-dev

  3.进入fio文件执行

sudo ./configure  && sudo  make  &&  sudo make install

  4.创建测试文件夹(在根目录下创建测试文件,适用于只有一个盘符的时候)

sudo mkdir /test_file 

  5.测试

sudo fio --rw=read --ioengine=libaio --direct=1 --directory=/test_file --size=32g --bs=16m --name=iotest 
#执行硬盘顺序读测试
sudo fio --rw=write --ioengine=libaio --direct=1 --directory=/test_file --size=32g --bs=16m --name=iotest 
#执行硬盘顺序写测试
sudo fio --rw=randread --ioengine=libaio --direct=1 --directory=/test_file --size=32g --bs=16m --name=iotest
#执行硬盘随机读测试
sudo fio --rw=randwrite --ioengine=libaio --direct=1 --directory=/test_file --size=32g --bs=16m --name=iotest
#执行硬盘随机写测试

 

扩展

  1.参数解释 

--rw=write # IO模式
--ioengine=libaio # 选择引擎
--direct=1 # 是否使用directIO 
--directory=/test_file # 指定测试文件夹
--size=32g #每个线程读写的数据量是32G
--bs=16m # 单次io的块文件大小为16M
--name=iotest # 测试任务的名称

  2.写进shell脚本,一键执行。

echo '安装fio引擎 sudo apt-get install libaio-dev -y'
sudo apt-get install libaio-dev -y
echo '编译 cd fio && sudo ./configure  && sudo  make  &&  sudo make install'
cd fio && sudo ./configure  && sudo  make  &&  sudo make install
echo '创建测试文件夹 sudo mkdir /test_file'
sudo mkdir /test_file
echo '测试顺序读 sudo fio --rw=read --ioengine=libaio --direct=1 --directory=/test_file --size=32g --bs=16m --name=iotest'
sudo fio --rw=read --ioengine=libaio --direct=1 --directory=/test_file --size=32g --bs=16m --name=iotest
echo '测试顺序写 sudo fio --rw=write --ioengine=libaio --direct=1 --directory=/test_file --size=32g --bs=16m --name=iotest'
sudo fio --rw=write --ioengine=libaio --direct=1 --directory=/test_file --size=32g --bs=16m --name=iotest
echo '测试随机读 sudo fio --rw=randread --ioengine=libaio --direct=1 --directory=/test_file --size=32g --bs=16m --name=iotest'
sudo fio --rw=randread --ioengine=libaio --direct=1 --directory=/test_file --size=32g --bs=16m --name=iotest
echo '测试随机写 sudo fio --rw=randwrite --ioengine=libaio --direct=1 --directory=/test_file --size=32g --bs=16m --name=iotest'
sudo fio --rw=randwrite --ioengine=libaio --direct=1 --directory=/test_file --size=32g --bs=16m --name=iotest

 

 

参考资料

  前言资料:https://www.mtyun.com/library/fio-introduction

  参数解释1:https://www.cnblogs.com/raykuan/p/6914748.html

  参数解释2:https://blog.csdn.net/don_chiang709/article/details/92628623

  

 

posted @ 2022-09-05 18:13  o蹲蹲o  阅读(872)  评论(0编辑  收藏  举报