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 模拟随机或者顺序的方式来测试磁盘IO的性能相关推荐

  1. 文件随机或顺序读写原理深入浅出

    一.文件读写的用户程序.操作系统.磁盘交互原理 最近为了彻底搞懂文件读写原理,我特意查询了很多资料,包括Java读写文件的API代码.操作系统处理文件以及磁盘硬件知识等.由于网上现存技术文章,几乎没有 ...

  2. 理解I/O:随机和顺序

    转自: http://www.violin-memory.com/blog/understanding-io-random-vs-sequential/ Storage for DBAs: Ever ...

  3. 根据geojson文件模拟随机点

    一.判断一个点是否在某一个封闭多边形的范围内 可以参考另一篇博客:判断一个点是否在封闭多边形内 我们选取其中一个python方式建立文件 is_point_in_polygon.py "&q ...

  4. .net session 有效时间_Python中requests模拟登录的三种方式(携带cookie/session进行请求网站)...

    这篇文章主要介绍了python中requests模拟登录的三种方式(携带cookie/session进行请求网站),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋 ...

  5. Python模拟随机漫步

    本文用Python模拟随机漫步行为. 1 使用内建的的random模块 import randomposition = 0 walk = [position] steps = 1000 for i i ...

  6. Android点击图片随机,android 设置图片随机出现-两种方式

    android 设置图片随机出现-两种方式, 第一种方式:得到图片对应的Drawable实例,通过setImageDrawable(drawable)实现 //ImageView对应的id ivBg ...

  7. numpy 用于图像处理(灰度图、转置、通道分离、图像扩展、水平镜像、水平翻转、调换x,y坐标、添加mask、随机打乱顺序、交换通道)

    目录 numpy 用于图像处理 1. 转换为灰度图 2. 转置 3. 画出三个通道的彩图 4. 图像扩展 5. 水平镜像 --- 交换行 6. 水平翻转 --- 交换列 7. 调换x,y坐标 8. 添 ...

  8. python模拟各大网站登陆方式,以及一些爬虫程序,麻麻再也不用担心我学爬虫啦!...

    python模拟各大网站登陆方式,以及一些爬虫程序 仅供练习使用,代码注释很详细 收集了一些各大网站登陆方式, 和一些网站的爬虫程序,有的是通过selenium登录,有的是通过抓包直接模拟登录,有的是 ...

  9. python模拟各大网站登陆方式,以及一些爬虫程序, 麻麻再也不用担心我学爬虫啦!...

    python模拟各大网站登陆方式,以及一些爬虫程序 仅供练习使用,代码注释很详细 收集了一些各大网站登陆方式, 和一些网站的爬虫程序,有的是通过selenium登录,有的是通过抓包直接模拟登录,有的是 ...

最新文章

  1. 第二百七十五节,MySQL数据库安装和介绍
  2. html5怎么实现自动缩放图片,如图,html5开发的手机端web在线客服聊天,如何实现图片点击放大,捏合缩放功能?...
  3. 经典|深入理解 Go高性能网络编程模型
  4. OpenCV+python图像处理基础操作
  5. 网络实验环境搭建--1.工具及搭建思路
  6. 编译正确,运行ORB_SLAM3报错Segmentation fault
  7. 成年人的生活到底有多心酸?
  8. 图嵌入(一)--综述
  9. 转 Still,yet和already的用法
  10. wince 音频学习
  11. 4.5.2 Stress Testing
  12. lvs realserver 配置VIP
  13. ROS 之 使用yocs_velocity_smoother对机器人速度进行限制
  14. 音视频开发:直播推流技术指南
  15. 自考计算机专业就业率,自考计算机专业就业前景和就业选择
  16. 5G时代下的室内定位技术--精准室内定位--新导智能
  17. vue进阶测试——生命周期和异步加载的微妙关系
  18. Kaggle实例-家庭贫困水平预测
  19. Perl正则表达式超详细教程
  20. cad模型轻量化_UNISOL告诉你,CAD与VR能迸发出怎样的火花

热门文章

  1. VTK:可视化算法之CarotidFlowGlyphs
  2. VTK:结构化网格之VisualizeStructuredGridCells
  3. Qt Creator用定位器搜索
  4. OpenGL text rendering文字渲染的实例
  5. C语言斐波那契数列(附完整源码)
  6. QT的QAudioRecorder类的使用
  7. C++struct和class区别
  8. 玩转NumPy——split()函数使用详解
  9. 13.4.虚拟化工具--jmap详解
  10. 优化器(AdaGrad,AdaDelta,RmsProp,Adam,Nadam,Nesterovs,Sgd,momentum)