如何使用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