SQLServer磁盘请求超时的833个错误原因及解决方案
最近,一个SQL Server服务器遇到了非常慢的响应,出现了一个客户端错误报告请求。在数据库的日志,有一个错误信息,磁盘请求超过15s。对于这样的问题,是存储系统或磁盘的故障,还是SQL服务器本身的问题,还是由应用程序引起的如何解决呢
本文将对造成该问题的一些因素进行简单的分析,但不能涵盖所有可能的可能性,所以在遇到类似问题时,我们还需要作具体分析。
SQLServer中的磁盘请求超时
英文版本的错误信息如下:
SQL Server遇到了I/O请求的%d事件,包括请求、请求、已和%d。
最新的长的我/ O偏移:% # 016i64x
错误信息的中文版本如下
SQL Server已满足% 1!数据库ID中的文件{ 3 %的I/O请求% 4!}大于% 2!秒。操作系统的文件句柄是0x%3 5!最近的长时间I/O偏移量是:% 6!
请参阅消息信息中的第833号错误消息。
特定833错误应用磁盘请求超时现象
这些错误的详细情况如下:
SQL Server已经在数据库N中超过15秒超过15秒的文件I/O的I/O请求。操作系统的文件句柄是***。最近的长时间I/O偏移量是:**
也就是说,在数据库中文件的自动增长过程中有一个错误。
。
U3000 U3000
U3000 U3000
更有趣的是,DBA向负责存储(SAN存储,而不是挂盘)的工程师报告错误信息。它认为这可能是由于存储系统的故障或不稳定引起的。
存储工程师认为没有问题,当服务器不正常检查服务器,内存几乎全为数据库服务器,存储几乎全部的情况可以说是完全正常的,负责存储不是DBA专业工程师、SQL Server数据库服务器内存使用可能不知道,这个问题可以提出了解。
因为数据库服务器使用的存储是一种高性能SAN存储,作为服务的存储,N服务器使用,而没有其他服务器磁盘请求不太可能说,服务器将被存储在一个简单的可疑故障被确认为内存故障。
那么原因何在
数据库引擎错误833的含义
首先,看看833个错误的具体含义,不要在13之前解释它。这本经典的书非常清楚。
总之,这意味着当SQLServer请求磁盘读写时,磁盘处于繁忙状态或其他因素,超过15秒尚未完成。
例如,当数据被读取和写入时,有必要向磁盘发送请求,而磁盘忙或其他问题太晚或不够及时,这将严重影响SQLServer提供外部服务器的响应时间。
以上是一个简单的分析。因为这个问题不是通用的,而且存储系统不太可能有任何问题,所以它很可能找到当前服务器本身的因素。
原因分析
因为它是一种特殊的SQL Server服务器,没有要求的其他应用程序,它可能是一个请求SQLServer数据库相关。
事实上,在这个问题之前,有一个早期的警告。当时的服务器通常是稳定的(CPU很少超过60%,内存可以稳定20分钟以上,磁盘IO延迟很低)等等,只是偶尔有一个刮风的时候。
当风把CPU驱动到80%左右时,内存的严重下降,IO延时严重增加。
现在我们可以从sql服务器会话开始。当我们在SQL Server中观察活动会话时,我们发现某类SQL语句的查询时间非常长。
这种SQL在一定时间内的频率比较高。
但在正常情况下,这种SQL的效率仍然很高。为什么突然变化得很好
检查活动会话对应的执行计划时,发现这样的活动会话等待IO等待状态(pageiolatch_sh),和SQL的执行完全是执行一种意想不到的方式。
由于更频繁地执行类似的查询,这样的会话将从不同的客户机开始。一旦SQL的执行效率降低,服务器上就会有很多活动会话。
为什么通常好的SQL语句突然变得缓慢而缓慢,
原因是,SQL Server在某一时刻自动触发统计更新,但这是一个比较大的规模,但默认的采样率统计更新是不够的,如果采样百分比不够,统计信息是不完全可用的。
一旦完成统计信息的自动收集,它将根据目前收集的统计信息(表扫描而不是索引查找)发送以前SQL语句的有效方法。事实上,这种方式是不合理的。
这就导致相应的SQL使用了一种不合理的执行计划来实现查询,同时也会造成会话的拥塞。客户机发送大量会话,同时,它以低效的方式缓慢地执行。
因此,CPU将急剧上升,IO延迟增加,内存消耗严重下降。
不难理解,几十个查询会话不是以合理的方式疯狂地向磁盘请求,磁盘是繁忙的会话数据请求,出现无法响应的原因是自动增长数据或索引文件请求所说的问题的开始。
最后,需要进行指数重建,使统计信息得到更新,当然,也可以解决纯统计信息。为了长期预防,我们需要安排人工定义数据更新的阈值和百分比。
总结:
数据库服务器中的许多问题都是链式反应过程。观察到的一些现象很可能不会在表面上反映出来。
专业职位必须具有专业素质,例如,在开始时,DBA错误地认为这是一个存储问题。存储工程师认为服务器内存是满的,这不是正常的原因,但它不是问题的根本原因。
面对问题,找出原因,追溯其根源,最根本的,是解决问题的关键。