磁盘问题定位与解决
2017-02-15 19:59
316 查看
磁盘问题定位基本流程:
磁盘的压力分析,主要使用下面几个性能计数器 (针对单独的物理盘,每个物理磁盘都会有一组):
Avg. Disk Read Queue Length 读队列(越小越好,理想值 2 以下,队列越高说明一个操作的响应时间越长)
Avg. Disk Write Queue Length 写队列(越小越好,理想值 2 以下,队列越高说明一个操作的响应时间越长)
Avg. Disk sec/Read
Avg. Disk sec/Write
Disk Read Bytes/sec
Disk Write Bytes/sec
注:常规判断系统磁盘压力,通过读写队列即可判断,后面4个主要用于磁盘是否自身性能存在问题,本文不介绍。
磁盘响应时间很长(磁盘队列很高,请求需要排队完成,所以表现为响应时间长)
磁盘队列波动
读
写
内存不足导致需要频繁和磁盘交互 (一般为主因)
经常有大量冷数据需要从磁盘读取,或经常有大批量脏页一次写入(checkpoint触发)
磁盘读写速度,不能满足业务需要
解决磁盘问题首先请诊断内存是否存在瓶颈,参照上一篇 -----内存问题定位与解决
如果内存不存在问题,请分析语句压力,是否有不优化的语句(要查询大量数据)需要从磁盘读取。
并查看系统的文件磁盘规划:
看一下这个系统的磁盘及数据库文件分布
可以看到这个服务器只配置了一块物理磁盘
数据库1
数据库2
tempDB
2个业务频繁的大数据库,数据文件、日志文件和系统tempDB都在同一个磁盘上!这样磁盘的读写速度势必不能满足业务要求。
磁盘规划建议:
规划磁盘分配的好处:假设你有两个数据库,业务操作都很繁忙,且读/写量都很大对磁盘的压力都很大,那么你自然会想到把他们分散到不同的磁盘上,这样每个库针对自己的磁盘读/写,不会互相影响且压力相当于原来的1/2,从而可以提升磁盘操作的响应时间。
数据库磁盘该怎么划分? 不同系统不同环境可能都不相同,下面给出一些简单建议:
按照文件类型划分:数据文件、日志文件、tempDB文件、备份文件,分别放在一个物理磁盘
按照数据库划分:不同的业务数据库(压力大的)分别放在一个物理磁盘,tempDB和备份文件各一个物理磁盘。
上面的两种分法是基本的划分方式,但是根据系统压力系统配置,均有不同情况。
当你的数据库压力较小,或磁盘资源紧张可以做适当的合并。当你的数据库特别大,并且有多个文件组,也可以选择把文件组更进一步细分。
类似于做了分区表,不同分区放在不同磁盘上,当需要多个分区数据时,可以利用IO并行提升效率。
磁盘的压力分析,主要使用下面几个性能计数器 (针对单独的物理盘,每个物理磁盘都会有一组):
Avg. Disk Read Queue Length 读队列(越小越好,理想值 2 以下,队列越高说明一个操作的响应时间越长)
Avg. Disk Write Queue Length 写队列(越小越好,理想值 2 以下,队列越高说明一个操作的响应时间越长)
Avg. Disk sec/Read
Avg. Disk sec/Write
Disk Read Bytes/sec
Disk Write Bytes/sec
注:常规判断系统磁盘压力,通过读写队列即可判断,后面4个主要用于磁盘是否自身性能存在问题,本文不介绍。
[b]步骤1.排除其他因素影响[/b]
磁盘IO一般是整个数据库的瓶颈,磁盘写入速度的快慢直接影响着数据库的性能,一般推荐数据库服务器不要与其他应用共用服务器,同时也要尽量避免在数据库服务器上做大的文件处理工作。[b]步骤2.[/b]磁盘问题定位
磁盘队列计数器持续很高(Avg. Disk Read Queue Length、Avg. Disk Write Queue Length)磁盘响应时间很长(磁盘队列很高,请求需要排队完成,所以表现为响应时间长)
磁盘队列波动
读
写
[b][b]步骤3.磁盘[/b]问题分析与解决(通用步骤)[/b]
首先[b]有哪些情况会对磁盘造成压力?[/b]内存不足导致需要频繁和磁盘交互 (一般为主因)
经常有大量冷数据需要从磁盘读取,或经常有大批量脏页一次写入(checkpoint触发)
磁盘读写速度,不能满足业务需要
解决磁盘问题首先请诊断内存是否存在瓶颈,参照上一篇 -----内存问题定位与解决
如果内存不存在问题,请分析语句压力,是否有不优化的语句(要查询大量数据)需要从磁盘读取。
并查看系统的文件磁盘规划:
看一下这个系统的磁盘及数据库文件分布
可以看到这个服务器只配置了一块物理磁盘
数据库1
数据库2
tempDB
2个业务频繁的大数据库,数据文件、日志文件和系统tempDB都在同一个磁盘上!这样磁盘的读写速度势必不能满足业务要求。
磁盘规划建议:
规划磁盘分配的好处:假设你有两个数据库,业务操作都很繁忙,且读/写量都很大对磁盘的压力都很大,那么你自然会想到把他们分散到不同的磁盘上,这样每个库针对自己的磁盘读/写,不会互相影响且压力相当于原来的1/2,从而可以提升磁盘操作的响应时间。
数据库磁盘该怎么划分? 不同系统不同环境可能都不相同,下面给出一些简单建议:
按照文件类型划分:数据文件、日志文件、tempDB文件、备份文件,分别放在一个物理磁盘
按照数据库划分:不同的业务数据库(压力大的)分别放在一个物理磁盘,tempDB和备份文件各一个物理磁盘。
上面的两种分法是基本的划分方式,但是根据系统压力系统配置,均有不同情况。
当你的数据库压力较小,或磁盘资源紧张可以做适当的合并。当你的数据库特别大,并且有多个文件组,也可以选择把文件组更进一步细分。
类似于做了分区表,不同分区放在不同磁盘上,当需要多个分区数据时,可以利用IO并行提升效率。
相关文章推荐
- 磁盘问题定位与解决
- 磁盘问题定位与解决
- 磁盘问题定位与解决
- 磁盘问题定位与解决
- VMWare磁盘配置的问题终于解决了!!
- 如何解决数学软件Maple v9.5在中文Windows下,公式输入中光标定位错误的问题
- 由于计算机磁盘硬件配置出现问题,导致 Windows 无法启动的解决方法 由于计算机磁盘硬件配置出现问题,导致 Windows 无法启动
- 安装VS2008关于解决磁盘已满问题方案.
- JBuilder Editor中光标不能正确定位问题的解决
- JBuilder Editor中光标不能正确定位问题的解决
- JBuilder Editor中光标不能正确定位问题的解决
- 解决thinkpadA34一键备份磁盘空间不足问题,
- 解决双击磁盘打不开的问题
- 磁盘性能计数器的问题的解决方法
- JBuilder Editor中光标不能正确定位问题的解决
- JBuilder Editor中光标不能正确定位问题的解决
- 请问如何解决WORD转HTML是出现的“内存或磁盘空间不足,无法显示或打印图片”这个问题?
- 解决linux没有在第一磁盘的引导扇区的问题
- Oracle卸载方法和在XP下装Oracle9i遇到安装磁盘交换区没有足够空间的问题解决办法
- oracle的临时表空间写满磁盘空间,解决改问题的具体步骤