使用SQLIO评估数据库磁盘性能

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:


对于DBA来说,安装SQLServer之前先要了解磁盘的性能,这个很重要。微软提供了SQLIO可以帮助我们在系统安装之前评估磁盘的性能。

 

1. 下载SQLIO并安装

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=20163

 

2.修改SQLIO’s 配置文件

 

如果直接启动SQLIO,它会使用8MB测试文件。由于现在存储的缓存都很大,所以不能真实的测试出性能,这里我将100的值修改为20GB。

打开param.Txt,修改100-20480(最后的100参数表上test文件的大小)

 

D:\testfile.dat 是要创建的测试文件名。如果你需要创建到其他磁盘,只需要修改这个值比如e:\testfile.dat.

 

3. 创建测试BAT测试脚本模拟不同的IO模式,保存为test.bat:(随机读写,8KB和64KB四种情况,你可以考虑用各种配置组合测试出磁盘的最佳性能).

 

sqlio -kW -t8 -s120 -o8 -frandom -b8 -BH-LS E:\TestFile.dat

sqlio -kR -t8 -s120 -o8 -frandom -b8 -BH-LS E:\TestFile.dat

sqlio -kW -t8 -s120 -o8 -fsequential -b64-BH -LS E:\TestFile.dat

sqlio -kR -t8 -s120 -o8 -fsequential -b64-BH -LS E:\TestFile.dat

 

参数含义:

 

· -kW and -kR: 测试读写

 

· -t8 and -o8: 使用8个线程模拟,因为SQLIO不受限于CPU的数量,所以你可以使用多于CPU数量。

 

· -s120: 测试持续 120seconds

 

· -b8 and -b64: 请求IO的大小 8KB/64KB。因为SQL Server随即IO基本都是8KB,但是如果读写数据多的话会多于8KB,所以这里用64KB模拟。

 

· -frandom and -fsequential: 代表了随即和顺序两种IO模式。 一般的SQL都是使用随即模式,但是备份LOG等使用顺序读写,所以模拟这两种情况。

 

4. 测试磁盘性能:

 

先做一个10秒钟的测试:

 

sqlio -kW -s10 -fsequential -t8 -o8 -b8 -LS-Fparam.txt timeout /T 10

 

上面的完成后执行第三步生成的test.bat

 

5.结果分析:

 

输出结果如下:

C:\Program Files (x86)\SQLIO>sqlio -kW -t8 -s120 -o8 -frandom -b8 -BH -LS -Fparam.txt
sqlio v1.5.SG
using system counter for latency timings, 3579545 counts per second
parameter file used: param.txt
 file e:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
2 threads writing for 120 secs to file e:\testfile.dat
 using 8KB random IOs
 enabling multiple I/Os per thread with 8 outstanding
 buffering set to use hardware disk cache (but not file cache)
using specified size: 20480 MB for file: e:\testfile.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec:  1580.91
MBs/sec:    12.35
latency metrics:
Min_Latency(ms): 0
Avg_Latency(ms): 9
Max_Latency(ms): 2927
histogram:
ms: 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
%:  0 19 62 14  2  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  2

 

重要的部分已经用红线标出,IOs/sec相当于磁盘的IOPs,MB/s磁盘数据的吞吐量。 底部的可以忽略,这些值表示了磁盘的反应时间。

 

另外针对于SQLIO的输出结果有一个非常好用的分析工具(SQLIO Analyzer),将SQLIO的结果保存到txt文件,但后导入分析工具,可以出现下面的图表结果(方便吧)。

 

下载:http://tools.davidklee.net/sqlio.aspx

 

更多内容可以参考:

 

Benchmarking SQL Server IO with SQLIO http://www.mssqltips.com/sqlservertip/2127/benchmarking-sql-server-io-with-sqlio/

SQLIO Tutorial:http://sqlserverpedia.com/blog/sql-server-performance-tuning/sqlio-tutorial/

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
1月前
|
SQL 存储 JSON
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
亲爱的社区小伙伴们,Apache Doris 2.1.0 版本已于 2024 年 3 月 8 日正式发布,新版本开箱盲测性能大幅优化,在复杂查询性能方面提升100%,新增Arrow Flight接口加速数据读取千倍,支持半结构化数据类型与分析函数。异步多表物化视图优化查询并助力仓库分层建模。引入自增列、自动分区等存储优化,提升实时写入效率。Workload Group 资源隔离强化及运行时监控功能升级,保障多负载场景下的稳定性。新版本已经上线,欢迎大家下载使用!
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
|
1月前
|
SQL 关系型数据库 数据库
事务隔离级别:保障数据库并发事务的一致性与性能
事务隔离级别:保障数据库并发事务的一致性与性能
|
2月前
|
存储 监控 数据库
《优化数据库性能的六大技巧》
数据库作为后端开发中至关重要的一环,在实际应用中经常遇到性能瓶颈问题。本文将分享六大实用技巧,帮助开发者优化数据库性能,提升系统响应速度。
|
3月前
|
关系型数据库 MySQL Serverless
阿里云云原生数据库 PolarDB MySQL Serverless:卓越的性能与无与伦比的弹性
阿里云原生数据库 PolarDB MySQL Serverless 拥有卓越性能和无与伦比的弹性。通过实验体验,深入了解其基本管理和配置、智能弹性伸缩特性和全局一致性特性。实验包括主节点和只读节点的弹性压测以及全局一致性测试,旨在亲身体验 PolarDB 的强大性能。通过实验,可以更好地在实际业务场景中应用 PolarDB,并根据需求进行性能优化和调整。
679 2
|
20天前
|
存储 关系型数据库 MySQL
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
|
8天前
|
SQL 缓存 Java
Java数据库连接池:优化数据库访问性能
【4月更文挑战第16天】本文探讨了Java数据库连接池的重要性和优势,它能减少延迟、提高效率并增强系统的可伸缩性和稳定性。通过选择如Apache DBCP、C3P0或HikariCP等连接池技术,并进行正确配置和集成,开发者可以优化数据库访问性能。此外,批处理、缓存、索引优化和SQL调整也是提升性能的有效手段。掌握数据库连接池的使用是优化Java企业级应用的关键。
|
21天前
|
缓存 监控 数据库
优化数据库查询性能的八大技巧
在今天的互联网时代,数据库是许多应用程序的核心组件之一。优化数据库查询性能是提升应用程序整体性能的关键。本文介绍了八种有效的技巧,帮助开发人员提高数据库查询性能,从而提升应用程序的响应速度和用户体验。
|
1月前
|
监控 Shell Linux
【Shell 命令集合 磁盘管理 】Linux 检查和创建磁盘配额数据库 quotacheck命令使用教程
【Shell 命令集合 磁盘管理 】Linux 检查和创建磁盘配额数据库 quotacheck命令使用教程
30 0
|
2月前
|
存储 缓存 NoSQL
《优化数据库性能的关键技巧》
在当今信息爆炸的时代,数据库扮演着至关重要的角色。本文将分享一些关键的技巧,帮助开发人员优化数据库性能,提升系统的响应速度和稳定性。
|
2月前
|
数据库
数据库的稳定性如何评估
数据库的稳定性如何评估
79 8

热门文章

最新文章