FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet,guasi, solarisaio 等等。

fio 官网地址:http://freecode.com/projects/fio

FIO用法:

随机读:

fio -filename=/dev/sdb1 -direct=1 -iodepth1 -thread -rw=randread -ioengine=psync -bs=16k -size=200G -numjobs=10-runtime=1000 -group_reporting -name=mytest

说明:

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          关于显示结果的,汇总每个进程的信息。

这个工具最大的特点是使用简单,支持的文件操作非常多, 可以覆盖到我们能见到的文件使用方式:
sync:Basic read(2) or write(2) I/O. fseek(2) is used to position the I/O location.
psync:Basic pread(2) or pwrite(2) I/O.
vsync: Basic readv(2) or writev(2) I/O. Will emulate queuing by coalescing adjacents iOS into a single submission.
libaio: Linux native asynchronous I/O.
posixaio: glibc POSIX asynchronous I/O using aio_read(3) and aio_write(3).
mmap: File is memory mapped with mmap(2) and data copied using memcpy(3).
splice: splice(2) is used to transfer the data and vmsplice(2) to transfer data from user-space to the kernel.
syslet-rw: Use the syslet system calls to make regular read/write asynchronous.
sg:SCSI generic sg v3 I/O.
net : Transfer over the network. filename must be set appropriately to `host/port’ regardless of data direction. If receiving,
only the port argument is used.
netsplice: Like net, but uses splice(2) and vmsplice(2) to map data and send/receive.
guasi The GUASI I/O engine is the Generic Userspace Asynchronous Syscall Interface approach to asycnronous I/O.

此外

lockmem=1g               只使用1g内存进行测试。

zero_buffers             用0初始化系统buffer。

nrfiles=8                每个进程生成文件的数量。

顺序读:

fio -filename=/dev/sdb1 -direct=1 -iodepth1 -thread -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000-group_reporting -name=mytest

随机写:

fio -filename=/dev/sdb1 -direct=1 -iodepth1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30-runtime=1000 -group_reporting -name=mytest

顺序写:

fio -filename=/dev/sdb1 -direct=1 -iodepth1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30-runtime=1000 -group_reporting -name=mytest

混合随机读写:

fio -filename=/dev/sdb1 -direct=1 -iodepth1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G-numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop

转自:http://blog.csdn.net/youngstonep/article/details/52315192

注意事项:

使用fio工具测试磁盘iops后,可能会导致磁盘下的文件损坏,出现Structure needs cleaning错误。

解决办法(会造成数据丢失)参考以下链接:

http://www.jb51.net/LINUXjishu/225992.html

今天在使用fio进行IO测试的时候,文件系统/home分区遇到了mount: Structure needs cleaning 报错。大致情况:

/home分区是xfs文件系统;

执行fio进行多进程测试;

测试完毕之后,执行du -hs /home/*,部分文件的数据提示 “mount: Structure needs cleaning”报错;

解决方法

可以使用xfs_repair来修复,但是要注意 xfs_repair修复的分区中的文件都会丢失,即使是du能正常显示的文件也会丢失。

处理步骤:

umount /home
xfs_repair /home
mount /home

挂载命令也可用: mount /dev/sdc1 /mnt/usbhd1    —— 第一个参数是设备号,第二个参数是目录

该工具一定要谨慎使用!损坏的数据目前还没办法恢复!!!

转载于:https://www.cnblogs.com/willdoop/p/7220747.html

Linux服务器iops性能测试-fio相关推荐

  1. 【性能测试】linux服务器监控性能测试

    文章目录 一.服务器测试概述 1.1 测试目的 1.2 测试与生产环境配置不同怎么办 二.进程与线程 2.1 定义与区别 2.2 进程优缺点 2.3 线程优缺点 三.服务器实时监控 3.1 服务器性能 ...

  2. linux服务器测试脚本,linux 服务器基础性能测试脚本

    很早之前在好友陈捷博客上下载的,挺好用的wget http://www.chenjie.info/download/bench.sh sh bench.sh 脚本备份#!/bin/bash #writ ...

  3. Linux服务器常见运维性能测试(3)CPU测试super_pi、sysbench

    Linux服务器常见运维性能测试(3)CPU测试 常见性能测试软件 CPU测试:super_pi (计算圆周率) CPU测试:sysbench(CPU功能测试部分) 下载安装 sysbench综合测试 ...

  4. Linux服务器常见运维性能测试(1)综合跑分unixbench、superbench

    Linux服务器常见运维性能测试及压力测试拷机稳定性系列(1)综合跑分unixbench.superbench 常见性能测试软件 综合测试:1.UnixBench 测试项 安装及使用 综合测试:2.s ...

  5. 【转】Linux服务器性能评估与优化(一)

    转自:https://blog.csdn.net/hguisu/article/details/39373311 1.前言简介 1.1.影响Linux服务器性能的因素 1. 操作系统级 性能调优是找出 ...

  6. Linux服务器性能评估与优化(一)

    1.前言简介 一.影响Linux服务器性能的因素 1. 操作系统级 性能调优是找出系统瓶颈并消除这些瓶颈的过程. 很多系统管理员认为性能调优仅仅是调整一下内核的参数即可解决问题, 事实上情况并不是这样 ...

  7. linux服务器进虚拟机,初次登录 Linux 服务器马上要做的 9 件事|Linux 中国

    导读:在将新配置的服务器投入工作之前,请确保你知道你正在使用什么. 本文字数:3308,阅读时长大约:5分钟 https://linux.cn/article-12959-1.html 作者:Gaur ...

  8. linux磁盘iops限制,linux – 我需要多少IOPS?我的工作量瓶颈是存储

    如果您知道存储受限,那么服务器上的基准测试将无法确切地告诉您需要多少存储空间.它们只能说明在有限的存储空间下你能走多快.为了正确获得您正在寻找的答案,您需要尽可能地隔离存储节流的不同方法并独立测试它们 ...

  9. linux服务器关机日期,linux服务器last查看关机记录

    1.查看重启记录 last reboot命令 [root@test ~]# last reboot reboot system boot 2.6.-.el6.x Mon May : - : (+:) ...

最新文章

  1. Leetcode 15.三数之和 双指针 or 暴力哈希
  2. 蓝桥杯四平方和Java_蓝桥杯 四平方和
  3. WPF拖拽过程中修改鼠标指针属性
  4. php读取文件和读取redis,本地测试读取redis和普通文件缓存的速度,redis慢一倍?...
  5. c语言实验四报告,湖北理工学院14本科C语言实验报告实验四数组
  6. 垃圾收集器(CMS收集器 , G1收集器…)
  7. 学一下HDFS,很不错(大数据技术原理及应用)
  8. -fembed-bitcode is not supported on versions of iOS prior to 6.0 iOS
  9. aspose.cells 模版
  10. python xlrd使用_python:利用xlrd模块操作excel
  11. BZOJ3343 洛谷2801:教主的魔法——题解
  12. linux scp后台运行的办法
  13. 可靠性试验与环境试验概述
  14. Java FTP 下载文件和文件夹
  15. MySQL 表空间碎片
  16. 苹果雪豹系统_AI知识图谱,让我撸到了一只天山上的雪豹
  17. 9.2 博客和OJ——让代码积累看得见——《逆袭大学》连载
  18. ubantu 16 nfs挂载
  19. 我怀疑京东神秘部门Y,悟出智能供应链真相了
  20. java 硬币_java实现硬币方案

热门文章

  1. python判断对象是否实例化_Python判断对象是否相等及eq函数的讲解
  2. java access jdbc_Java连接Access数据库
  3. java jstack 工具_java命令之jstack工具
  4. LeetCode 1800. 最大升序子数组和
  5. python多线程实现方式_python中实现多线程有几种方式?
  6. mysql 图片base64_关于图片的Base64编码
  7. python地理_【Python教程】地理可视化
  8. python sorted下标_Python列表操作最全面总结
  9. 四个关键步骤,精进算法和数据结构 ​
  10. Redis 高负载下的中断优化