linux 磁盘试验总结,详解三种Linux测试磁盘IO性能的方法总结,值得收藏

概述

在磁盘测试中我们一般最关心的几个指标分别为:iops(每秒执行的IO次数)、bw(带宽,每秒的吞吐量)、lat(每次IO操作的延迟)。

当每次IO操作的block较小时,如512bytes/4k/8k等,测试的主要是iops。

当每次IO操作的block较大时,如256k/512k/1M等,测试的主要是bw。

一、dd命令

dd是linux自带的磁盘读写工具,可用于测试顺序读写。

一般而言,磁盘读写有两种方式:BufferIO、DirectIO,DirectIO可以更好的了解纯磁盘读写的性能。

1、语法

语法格式

dd指令选项详解

FLAGS参数说明:

注意:指定数字的地方若以下列字符结尾乘以相应的数字:b=512, c=1, k=1024, w=2, xm=number m,kB=1000,K=1024,MB=1000*1000,M=1024*1024,GB=1000*1000*1000,G=1024*1024*1024

2、dd测试DirectIO

c1f8b9bd9963d6ba67e8acaee7e46c95.png

打开搜狗搜索APP,查看更多精彩资讯

3、 dd测试BufferIO

BufferIO主要出现在一些大文件读写的场景,由于使用内存做Cache所以读写性能上和DirectIO相比,通常会高很多,尤其是读,所以这个场景下我们仅关心bw即可。

用dd测试BufferIO的写时,需要增加一个conv=fdatasync,使用该参数,在完成所有读写后会调用一个sync确保数据全部刷到磁盘上(期间操作系统也有可能会主动flush),否则就是主要在测内存读写了;

另外还有一个参数是oflag=dsync,使用该参数也是走的BufferIO,但却是会在每次IO操作后都执行一个sync。

通常conv=fdatasync更符合大文件读写的场景,所以这里以其作为参数进行测试。

sgs_tc_news.php?req=UfCUC5jSkAZmJZPqrYgAfWiH2mYvW-t73cTo3bWtbXA=&user_type=wappage

二、 fio工具

fio是专门用于测试磁盘IO的工具,与dd相比那是要强大非常多,它可以用于测试顺序读写、随机读写、顺序混合读写、随机混合读写,并且可以调整IO并发量,在测试完成后还会生成一份测试报告,相当给力。

1、测试场景:

100%随机,100%读, 4K

100%随机,100%写, 4K

100%顺序,100%读 ,4K

100%顺序,100%写 ,4K

100%随机,70%读,30%写 4K

三、iozone

IOzone is a filesystem benchmark tool. The benchmark generates and measures a variety of file operations. Iozone has been ported to many machines and runs under many operating systems.

iozone是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能。 可以测试 Read, write, re-read,re-write, read backwards, read strided, fread, fwrite, random read, pread, mmap, aio_read, aio_write 等等不同的模式下的硬盘的性能。 测试的时候请注意,设置的测试文件的大小一定要大过你的内存(最佳为内存的两倍大小),不然linux会给你的读写的内容进行缓存。会使数值非常不真实。

sgs_tc_news.php?req=UfCUC5jSkAZmJZPqrYgAfWiH2mYvW-t73cTo3bWtbXA=&user_type=wappage

例子:iozone -i 0 -i 2 -Rc -a -q 500k -g 1m -n 100k -b test_result.xls

参数说明如下:-i 代表测试场景,0 代表运行顺序写测试,1代表运行随机读写测试。还有很多场景可选,具体可见iozone -h说明

-R 代表生成Excel报告文件。

-c 代表每次读写测试完毕都发送关闭连接的命令,主要用于测试NFS系统。

-a 代表自动模式。

-q 代表最大的记录大小。

-g 代表最大的文件大小。

-n 代表最小的文件大小。

-b 输出的生成的Excel报告文件名字。

sgs_tc_news.php?req=UfCUC5jSkAZmJZPqrYgAfWiH2mYvW-t73cTo3bWtbXA=&user_type=wappage

生成报告如下:

sgs_tc_news.php?req=UfCUC5jSkAZmJZPqrYgAfWiH2mYvW-t73cTo3bWtbXA=&user_type=wappage

后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

sgs_tc_news.php?req=UfCUC5jSkAZmJZPqrYgAfWiH2mYvW-t73cTo3bWtbXA=&user_type=wappage

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统的top命令是一个非常实用的工具,用来实时地监控系统的状态,包括CPU、内存、磁盘等方面。在top命令中,我们可以通过按下键盘上的不同字母键来切换显示不同的信息,下面我主要讲解一下如何使用top命令查看CPU的使用情况。 1. 打开终端,输入top命令,进入top命令的交互界面。 2. 在交互界面中,可以看到很多信息,其中第一行显示了系统的总体情况,包括系统当前时间、运行时间、登录用户数、负载平均值等。CPU使用情况则显示在第三行。 3. 第三行中,分别显示了CPU的总体使用情况和各个进程的CPU使用情况。其中,%Cpu(s)表示CPU的总体使用情况,us表示用户态占用CPU的百分比,sy表示内核态占用CPU的百分比,ni表示优先级较低的进程占用CPU的百分比,id表示CPU空闲的百分比,wa表示等待IO操作的进程占用CPU的百分比,hi表示硬件中断的占用CPU的百分比,si表示软件中断的占用CPU的百分比。在八个百分比的后面,分别显示了CPU的逻辑核心数。 4. 除了第三行的信息,我们还可以按下键盘上的1键,来查看每个CPU逻辑核心的使用情况。在这个界面中,我们可以看到每个逻辑核心的使用情况,包括用户态、内核态、空闲态和等待IO操作的进程等。 5. 除了以上的方式,我们还可以按下键盘上的t键来切换显示不同的信息,包括进程的状态、内存的使用情况等。 通过使用top命令,我们可以实时地监控系统的CPU使用情况,及时发现系统中的CPU瓶颈,有助于我们及时调整系统的配置,保证系统的稳定性和性能

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值