Linux系统硬盘的IOPS测试

*******************************************************************************************

版权所有: www.foutime.com  深圳市方泰智能科技有限公司

通道锁 逃生锁 一卡通 楼宇对讲 停车场

*******************************************************************************************

什么是IOPS?

IOPS (英文:Input/Output Operations Per Second),即每秒进行读写(I/O)操作的次数,多用于数据库等场合,衡量随机访问的***能。存储端的IOPS***能和主机端的IO是不同的,IOPS是指存储每秒可接受多少次主机发出的访问,主机的一次IO需要多次访问存储才可以完成。

所以对于每台服务器,它的IOPS都是很重要的,直接影响***能。平时我们如何去测试自己的IOPS是否好呢?我们可以通过“FIO”此Linux下的IOPS测试工具来检测。

使用方式:

安装FIO:

yum install gcc libaio-devel -y
wget http://brick.kernel.dk/snaps/fio-2.0.10.tar.gz
tar -zxvf fio-2.0.10.tar.gz
cd fio-2.0.10
make && make install

测试:

随机读
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -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 关于显示结果的,汇总每个进程的信息。

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

###############################################

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

随机写
fio -filename=/dev/sdb1 -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

###############################################

实际测试范例(主要查看红色字体部分的iops):
[[email protected] ~]# 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
mytest1: (g=0): rw=randrw, bs=16K-16K/16K-16K, ioengine=psync, iodepth=1

mytest1: (g=0): rw=randrw, bs=16K-16K/16K-16K, ioengine=psync, iodepth=1
fio 2.0.7
Starting 30 threads
Jobs: 1 (f=1): [________________m_____________] [3.5% done] [6935K/3116K /s] [423 /190 iops] [eta 48m:20s] s]

mytest1: (groupid=0, jobs=30): err= 0: pid=23802
read : io=1853.4MB, bw=18967KB/s, iops=1185 , runt=100058msec
clat (usec): min=60 , max=871116 , avg=25227.91, stdev=31653.46
lat (usec): min=60 , max=871117 , avg=25228.08, stdev=31653.46
clat percentiles (msec):
| 1.00th=[ 3], 5.00th=[ 5], 10.00th=[ 6], 20.00th=[ 8],
| 30.00th=[ 10], 40.00th=[ 12], 50.00th=[ 15], 60.00th=[ 19],
| 70.00th=[ 26], 80.00th=[ 37], 90.00th=[ 57], 95.00th=[ 79],
| 99.00th=[ 151], 99.50th=[ 202], 99.90th=[ 338], 99.95th=[ 383],
| 99.99th=[ 523]
bw (KB/s) : min= 26, max= 1944, per=3.36%, avg=636.84, stdev=189.15
write: io=803600KB, bw=8031.4KB/s, iops=501 , runt=100058msec
clat (usec): min=52 , max=9302 , avg=146.25, stdev=299.17
lat (usec): min=52 , max=9303 , avg=147.19, stdev=299.17
clat percentiles (usec):
| 1.00th=[ 62], 5.00th=[ 65], 10.00th=[ 68], 20.00th=[ 74],
| 30.00th=[ 84], 40.00th=[ 87], 50.00th=[ 89], 60.00th=[ 90],
| 70.00th=[ 92], 80.00th=[ 97], 90.00th=[ 120], 95.00th=[ 370],
| 99.00th=[ 1688], 99.50th=[ 2128], 99.90th=[ 3088], 99.95th=[ 3696],
| 99.99th=[ 5216]
bw (KB/s) : min= 20, max= 1117, per=3.37%, avg=270.27, stdev=133.27
lat (usec) : 100=24.32%, 250=3.83%, 500=0.33%, 750=0.28%, 1000=0.27%
lat (msec) : 2=0.64%, 4=3.08%, 10=20.67%, 20=19.90%, 50=17.91%
lat (msec) : 100=6.87%, 250=1.70%, 500=0.19%, 750=0.01%, 1000=0.01%
cpu : usr=1.70%, sys=2.41%, ctx=5237835, majf=0, minf=6344162
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=118612/w=50225/d=0, short=r=0/w=0/d=0

Run status group 0 (all jobs):
READ: io=1853.4MB, aggrb=18966KB/s, minb=18966KB/s, maxb=18966KB/s, mint=100058msec, maxt=100058msec
WRITE: io=803600KB, aggrb=8031KB/s, minb=8031KB/s, maxb=8031KB/s, mint=100058msec, maxt=100058msec

Disk stats (read/write):
sdb: ios=118610/50224, merge=0/0, ticks=2991317/6860, in_queue=2998169, util=99.77%

Linux系统硬盘的IOPS测试,布布扣,bubuko.com

时间: 2024-08-07 18:36:21

Linux系统硬盘的IOPS测试的相关文章

linux系统硬盘分区

linux系统硬盘分区 首先我们需要了解一下linux中设备文件的命名: hda一般是指IDE接口的硬盘,hda一般指第一块硬盘,类似的有hdb,hdc! sda一般是指SATA接口的硬盘,sda一般指第一块硬盘,类似的有sdb,sdc! 第一步:-----利用fdisk进入硬盘操作 进入命令行: #fdisk /dev/sda  (SDA指的是第一块硬盘)   //第一步 然后敲入m 可以得到输入提示! 这里我们用到的命令主要有: d: 删除一个分区 n:创建一个分区 t:改变分区的类型 p:

linux系统硬盘表识

一:linux系统硬盘命名是基于文件的,一般是:/dev/hda2 和 /dev/sdb3 # /dev:是所有设备文件的存放目录. #hd和sd :它们是分区的前两字母,代表分区所在的设备类型.hd代表ide硬盘,sd代表scsi硬盘. #如hda中的a,表示分区在哪个设备上,a代表第一块硬盘,b第二块硬盘,依次类推 #hda2中的2表示分区,1-4表示主分区或扩展分区,逻辑分区从5开始,hda2表示第一块ide硬盘的第2个主分区或扩展分区. 原文地址:http://blog.51cto.co

Linux系统硬盘分区方案推荐

在计算机上安装 Linux 系统,对硬盘进行分区是一个非常重要的步骤,下面介绍几个分区方案. 方案 1 / :建议大小在 5GB 以上. swap :即交换分区,建议大小是物理内存的 1~2 倍. 方案 2 /boot  :用来存放与 Linux系统启动有关的程序,比如启动引导装载程序等,建议大小为 200MB . /    :Linux 系统的根目录,所有的目录都挂在这个目录下面,建议大小为 5GB 以上. /home  :存放普通用户的数据,是普通用户的宿主目录,建议大小为剩下的空间. sw

LINUX系统下跑分测试脚本:unixbench.sh

linux 系统跑分测试脚本:     一.下载脚本:        wget http://teddysun.com/wp-content/uploads/unixbench.sh 二.更改权限:        chmod +x unixbench.sh 三.运行测试:        sudo bash ./unixbench.sh 等待结果... 测试时间可能会比较长,请耐性等待! 注释:由于网上找了很多方法都没有成功,这个方法亲测可行,以此博文作为记录,并且分享给有需要的小伙伴! 原文地址

Linux系统硬盘扩容

参考教程:https://www.jb51.net/article/144291.htm 1.查看硬盘已经用了99% $ df -h #查看硬盘已经使用了99% 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 2.0G 0 2.0G 0% /dev tmpfs 2.0G 12K 2.0G 1% /dev/shm tmpfs 2.0G 11M 2.0G 1% /run tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/mapper/centos-roo

Linux系统硬盘读写测试

方法一:用dd命令 Linux服务器想要知道硬盘的读写是否能满足服务的需要,我们可以使用Linux自带的dd命令测试硬盘的读写速度,方法如下: Linux硬盘写入速度: # time dd if=/dev/zero of=/var/test bs=2k count=1000000 Linux硬盘读取速度: # time dd if=/var/test of=/dev/null bs=2k 命令详解: * time用于计时 * dd用于复制,从if读出,写到of. * if=/dev/zero不产

Linux系统硬盘读写测试(dd、hdparm)

转载自: http://blog.sina.com.cn/s/blog_413d250e0101jtr7.html 方法一:用dd命令 Linux服务器想要知道硬盘的读写是否能满足服务的需要,我们可以使用Linux自带的dd命令测试硬盘的读写速度,方法如下: 登录SSH,输入以下命令即可,根据测试数据的大小等待返回的时间不同. Linux硬盘写入速度: # time dd if=/dev/zero of=/var/test bs=2k count=1000000 Linux硬盘读取速度: # t

查看linux系统硬盘目录占用大小

http://jingyan.baidu.com/article/3aed632e198ae870108091b4.html du -sh /* 先看看根目录下面 du -sh /usr/* du -sh /usr/local/ * 依次类推...

Linux系统fdisk分区

以下操作全部基于win7 64位系统上的Linux虚拟机(CentOS6.6). 当Linux虚拟机的硬盘空间不够用时,可以手动添加硬盘块,流程如下: 右键虚拟机,点击“Add”按钮: 选择“Hard Disk”,点击“next”: 选择“Create a new virtual disk”,点击“next”: 选择“SCSI”,点击“next”: 设置硬盘大小,“store disk as a single file”,点击“next”: 点击“finish”,即添加成功: 重启Linux系统