设为首页 收藏本站
查看: 761|回复: 0

[经验分享] SQLIO 模拟随机或者顺序的方式来测试磁盘IO的性能

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-11-21 16:29:35 | 显示全部楼层 |阅读模式
SQLIO

功能:磁盘IO压力测试工具,SQLIO主要是模拟随机或者顺序的方式来测试磁盘IO的性能。
SQLIO Disk Subsystem Benchmark Tool工具下载地址:
http://www.microsoft.com/en-us/download/details.aspx?id=20163
RAID存储技术在SQL Server服务器上已经被广泛使用,对于存储介质,有很多层面的硬件和固件,以及存储管理软件配置。如果设置不恰当,同样的硬件最后的效能会差别很大。

微软提供了一个工具叫SQLIO.exe,专门用作数据库硬盘压力测试。工具安装好后,主要用到的是两个文件。
1. Param.txt。
-----------------------------内容范例----------------------------
#c:\testfile.dat 2 0x00 100
d:\testfile.dat 4 0x00 1024
-----------------------------------------------------------------------
每行的格式及其参数的含义如下。
l <Path to test file>: 测试用的文件和它的完整路径。
l <Number of threads (per test file)>: 测试同时使用多少个线程进行。建议和CPU数目一致。
l <Mask>: 始终使用0x0。
l <Size of test file in MB>: 测试文件的大小,最好是SAN(或RAID Controller)的读写缓存大小的2到4倍,A5机器一般是512MB,这里可以用1024MB。
如果某行要注释掉,就在最前面加一个#号。
所以上面范例的意思是,在D盘的根目录下,用4个线程,一个1024MB的文件来做压力测试。

2. SQLIO.exe。
也就是主测试文件。它有很多参数,具体含义如下表:
选项
说明
-o
测试文件会在磁盘上产生的队列长度(Disk Queue Length)。一般来说,这个值越高,单位时间磁盘的吞吐量就越大。但是有些磁盘会在Queue Length太大的情况下出问题。常用的有8、32和64
-LS
记录磁盘反应时间,这是一个推荐使用的选项
-k
指定是读还是写(R或W)
-s
测试持续多少秒。一般至少5到10分钟。
-b
每次I/O请求的大小。
-f
I/O的种类,是随机(’random’)还是连续(’sequential’)的。
-F
参数文件的名字,默认就是param.txt

由于测试需要覆盖不同的I/O类型,所以可以用下面这样的批处理文件来做一套测试
见附件testIO.bat

这里输入timeout命令的完整路径,是因为若装有cygwin,会因为环境变量Path的优先级而导致找到的timeout命令不是Windows下的该命令,而导致命令失败。
运行的时候在命令行下运行:
testIO.bat > out.txt

结果会输出在相同目录下的out.txt文件里。每一行命令都会有它的输出。

在做随机读和随机写的时候,Disk Transfers/sec的数量不会因为每个Transfer(每次I/O)的大小不同而有明显的变化,Avg. Disk sec/Transfer也差不多。所以每完成一次I/O,花的时间都差不多,Transfer越大,那么Disk Bytes/sec也就越高。但是整体性能,还是比不上做连续读、写的时候。

在做连续读和写的时候,由于数据是连续的,所以不管每次做的I/O多大,最终的Disk Bytes/sec值相差不大。

当做的事情不一样的时候,磁盘的吞吐量会有很大的差异。在和硬盘供应商讨论磁盘性能的时候,也要要求他们提供磁盘在不同I/O行为下的能力值,而不是某个最佳值。

对于out.txt的输出结果,IOs/sec相当于磁盘的IOPs,MB/s相当于磁盘数据的吞吐量。Latency相当于磁盘的反应时间。
见附件out.txt


针对SQLIO的输出结果有一个非常好用的分析工具(SQLIO Analyzer),将SQLIO的结果保存到txt文件,用shell命令筛选出相关数据,如:   
grep “IOs/sec” out.txt | awk ‘{print $2}’   
然后导入分析工具,可以出现下面的图表结果。
见附件sqlio_analyzer_results.xls

工具地址:http://tools.davidklee.net/sqlio.aspx

sqlio相关3个附件.zip

264.19 KB, 下载次数: 0


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-32557-1-1.html 上篇帖子: SQL Server 高可用方案 下篇帖子: SQLIOSim 模拟SQLServer的行为来测试IO性能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表