用一个fio工具

安装

yum -y install fio

二,FIO用法:

随机读:
fio  -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=20G -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          关于显示结果的,汇总每个进程的信息。

此外
lockmem=1g               只使用1g内存进行测试。
zero_buffers             用0初始化系统buffer。
nrfiles=8                每个进程生成文件的数量。

顺序读:
fio  -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

随机写:
fio -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest

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

混合随机读写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop

三,实际测试范例:

[root@localhost ~]# fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=mytest1

中间会报错了

mytest: Laying out IO file(s) (1 file(s) / 2048MB)
fio: pid=0, err=2/file:filesetup.c:79, func=open, error=No such file or directory
mytest: Laying out IO file(s) (1 file(s) / 2048MB)
fio: pid=0, err=2/file:filesetup.c:79, func=open, error=No such file or directory
mytest: Laying out IO file(s) (1 file(s) / 2048MB)
fio: pid=0, err=2/file:filesetup.c:79, func=open, error=No such file or directory
mytest: Laying out IO file(s) (1 file(s) / 2048MB)
fio: pid=0, err=2/file:filesetup.c:79, func=open, error=No such file or directory
mytest: Laying out IO file(s) (1 file(s) / 2048MB)
fio: pid=0, err=2/file:filesetup.c:79, func=open, error=No such file or directory
mytest: Laying out IO file(s) (1 file(s) / 2048MB)
fio: pid=0, err=2/file:filesetup.c:79, func=open, error=No such file or directory
mytest: Laying out IO file(s) (1 file(s) / 2048MB)
fio: pid=0, err=2/file:filesetup.c:79, func=open, error=No such file or directory
mytest: Laying out IO file(s) (1 file(s) / 2048MB)
fio: pid=0, err=2/file:filesetup.c:79, func=open, error=No such file or directory
mytest: Laying out IO file(s) (1 file(s) / 2048MB)
fio: pid=0, err=2/file:filesetup.c:79, func=open, error=No such file or directory
mytest: Laying out IO file(s) (1 file(s) / 2048MB)
fio: pid=0, err=2/file:filesetup.c:79, func=open, error=No such file or directory

========================

把文件名参数 -filename=/dev/sdb1 干掉

======================================

[root@localhost tmp]# fio -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=5 -group_reporting -name=mytest
mytest: (g=0): rw=randread, bs=16K-16K/16K-16K/16K-16K, ioengine=psync, iodepth=1
...
fio-2.2.8
Starting 10 threads
mytest: Laying out IO file(s) (1 file(s) / 2048MB)
mytest: Laying out IO file(s) (1 file(s) / 2048MB)
mytest: Laying out IO file(s) (1 file(s) / 2048MB)
Jobs: 10 (f=10): [r(10)] [100.0% done] [3152KB/0KB/0KB /s] [197/0/0 iops] [eta 00m:00s]
mytest: (groupid=0, jobs=10): err= 0: pid=15442: Thu Sep 24 16:51:05 2015
read : io=14784KB, bw=2918.3KB/s, iops=182, runt= 5066msec
clat (msec): min=3, max=460, avg=54.41, stdev=63.26
lat (msec): min=3, max=460, avg=54.41, stdev=63.26
clat percentiles (msec):
| 1.00th=[ 5], 5.00th=[ 9], 10.00th=[ 11], 20.00th=[ 16],
| 30.00th=[ 19], 40.00th=[ 24], 50.00th=[ 31], 60.00th=[ 43],
| 70.00th=[ 56], 80.00th=[ 80], 90.00th=[ 128], 95.00th=[ 184],
| 99.00th=[ 338], 99.50th=[ 379], 99.90th=[ 461], 99.95th=[ 461],
| 99.99th=[ 461]
bw (KB /s): min= 98, max= 593, per=10.18%, avg=297.06, stdev=109.73
lat (msec) : 4=0.76%, 10=7.03%, 20=25.76%, 50=32.03%, 100=19.59%
lat (msec) : 250=12.77%, 500=2.06%
cpu : usr=0.01%, sys=0.13%, ctx=942, majf=0, minf=41
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued : total=r=924/w=0/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
latency : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
READ: io=14784KB, aggrb=2918KB/s, minb=2918KB/s, maxb=2918KB/s, mint=5066msec, maxt=5066msec

Disk stats (read/write):
dm-1: ios=905/2, merge=0/0, ticks=53056/149, in_queue=53856, util=98.12%, aggrios=928/3, aggrmerge=0/0, aggrticks=55020/149, aggrin_queue=55168, aggrutil=97.95%
sda: ios=928/3, merge=0/0, ticks=55020/149, in_queue=55168, util=97.95%

CentOS评估磁盘I/O性能读写极限测试的更多相关文章

  1. 使用mongoperf评估磁盘随机IO性能

    用法举例: # 16个io线程 # 随机读写10GB的测试文件 echo "{nThreads:16,fileSizeMB:10000,r:true,w:true}" | mong ...

  2. 通过数据库评估存储设备IO性能-Oracle11gIO校准功能介绍

    通过数据库评估存储设备IO性能 ---------Oracle11g IO校准功能介绍 前言 I/O子系统是ORACLE数据库的一个重要组成部分,因为I/O操作是贯穿数据库管理全过程,它操作的对象包括 ...

  3. [整]磁盘 I/O 性能监控指标和调优方法

    在介绍磁盘 I/O 监控命令前,我们需要了解磁盘 I/O 性能监控的指标,以及每个指标的所揭示的磁盘某方面的性能. 磁盘 I/O 性能监控的指标主要包括: 指标 1:每秒 I/O 数(IOPS 或 t ...

  4. 磁盘 I/O 性能监控指标和调优方法

    在介绍磁盘 I/O 监控命令前,我们需要了解磁盘 I/O 性能监控的指标,以及每个指标的所揭示的磁盘某方面的性能.磁盘 I/O 性能监控的指标主要包括:指标 1:每秒 I/O 数(IOPS 或 tps ...

  5. Linux磁盘I/O性能监控——iostat

    iostat命令可以查看CPU利用率和磁盘性能相关数据,有时候我们会觉得系统响应慢,传数据很慢,这个慢可能是多方面原因导致的,如CPU利用率高.网络差.系统平均负载高甚至是磁盘已经损坏了.对此,系统性 ...

  6. 【转载】CentOS LVM磁盘扩容

    转自:http://blog.sina.com.cn/s/blog_8882a6260101cpfs.html EXSI5.1主机有一个linux虚拟机,系统是centos运行httpd服务,因为是多 ...

  7. linux(CentOS)磁盘挂载数据盘

    linux(CentOS)磁盘挂载数据盘:第一步:查看是否存在需要挂载的磁盘: sudo fdisk -l 第二步:为需要挂载的磁盘创建分区: sudo fdisk /dev/vdb 执行中:依次选择 ...

  8. 利用pl/sql执行计划评估SQL语句的性能简析

    一段SQL代码写好以后,可以通过查看SQL的执行计划,初步预测该SQL在运行时的性能好坏,尤其是在发现某个SQL语句的效率较差时,我们可以通过查看执行计划,分析出该SQL代码的问题所在.  那么,作为 ...

  9. 【精】Linux磁盘I/O性能监控之iostat详解

    [精]Linux磁盘I/O性能监控之iostat详解 Linux命令详解----iostat 使用iostat分析IO性能

随机推荐

  1. T-SQL 常用语句

    1. 查看 Table 或者 Column 被那些object(存储过程.函数或View)调用. select a.* from sysobjects a, syscomments b where a ...

  2. 檢查RAC狀態

    1.使用srvctl工具檢查RAC當前配置和狀態 $ srvctl config database -h Displays the configuration for the database. Us ...

  3. ZLL网关程序分析

    主机接口 zllSocCmd.h(ZLL的Socket主机接口) 此模块包含ZLL的Socket主机接口API.其包含的函数方法在zllSocCmd.c中实现 ZLL Soc Types 定义了描述设 ...

  4. Asp.Net MVC中Controller与View之间传递的Model

    Controller --> View 的Model 与 提交表单后 View --> Controller 的Model 不是相同的对象,即:这两个Model为不同的指针,指向不同的地址 ...

  5. python web编程 创建一个web服务器

    这里就介绍几个底层的用于创建web服务器的模块,其中最为主要的就是BaseHTTPServer,很多框架和web服务器就是在他们的基础上创建的 基础知识 要建立一个Web 服务,一个基本的服务器和一个 ...

  6. javascript写在<head>和<body>里的区别

    Javascript写在哪里?概括起来就是三种形式:1. 内部:Html网页的<body></body>中:2. 内部:Html网页的<head></head ...

  7. HTTP基础05--http首部

    HTTP 报文首部 HTTP 请求报文 在请求中,HTTP 报文由方法.URI.HTTP 版本.HTTP 首部字段等部分构成. HTTP 响应报文 在响应中,HTTP 报文由 HTTP 版本.状态码( ...

  8. 【虚拟机】苹果虚拟机mac10.11.6+Xcode8.1

    [虚拟机]苹果虚拟机mac10.11.6+Xcode8.1本虚拟机加装Xcode8.1,方便大家更好学习Swift3.0语言以及iOS开发.安装注意事项:第一步:确认硬件:1.确认主板以及cpu支持虚 ...

  9. 20145223《Java程序程序设计》实验报告5

    20145223杨梦云<Java网络编程> 一.实验内容 ·1.运行下载的TCP代码,结对进行,一人服务器,一人客户端: ·2.利用加解密代码包,编译运行代码,一人加密,一人解密: ·3. ...

  10. js-变量、作用域和内存问题,引用类型

    变量.作用域和内存问题 1.变量可能包含两种不同数据类型的值:基本类型值以及引用类型值:引用类型值保存的是内存中的对象 2.对象是按值传递的, function setName(obj){ obj.n ...