SQL Server上的磁盘时间很长

我们有一个专用的SQL Server 2008 R2企业版。

设置是:

  • D :(数据文件) – 存储在本地ssd磁盘上(与日志文件不同)(raid 10)
  • E:(日志文件) – 存储在本地ssd磁盘上(与数据文件不同)(raid 1)
  • F :(事务日志备份) – 远程存储在SAN上

今天我们把日志文件移到新的磁盘上(从F:到E :)。 从共享卷(F:(SAN))到专用本地磁盘(E :)。

然后会发生什么是在我们有数据文件的卷(D :)(不在日志文件所在的卷上)增加了“磁盘时间”,“平均传输时间”和“平均磁盘写入队列长度” )。

数据卷和日志卷不共享磁盘,但共享相同的控制器卡。

所有卷的“磁盘空闲时间”都很低。

一个想法是,控制卡可能会过载。 但是,我们需要更多的想法来解决问题。

更新:

RAID控制器是DELL PERC H700(512 MBcaching)。 服务器是戴尔R910 。

在高峰时段我们有大约2500笔交易/秒。

自从我们移动日志文件(即使在低stream量时间)以来,“磁盘时间”计数器已经达到了100%。

对于D:(数据文件)和E :(日志文件),“磁盘空闲时间”约为98-99%

我们已经为数据磁盘和日志磁盘configuration了回写caching​​。

等待统计看起来像这样:

wait_type wait_time_s --------- ----------- BROKER_TASK_STOP 1283336.21 FT_IFTS_SCHEDULER_IDLE_WAIT 101357.47 PAGELATCH_EX 89712.72 BROKER_TRANSMITTER 75894.76 XE_TIMER_EVENT 38778.35 REQUEST_FOR_DEADLOCK_SEARCH 38770.35 SQLTRACE_INCREMENTAL_FLUSH_SLEEP 38767.03 FT_IFTSHC_MUTEX 38759.14 LOGMGR_QUEUE 38632.87 CHECKPOINT_QUEUE 38382.63 BROKER_EVENTHANDLER 35082.42 XE_DISPATCHER_WAIT 34396.31 DISPATCHER_QUEUE_SEMAPHORE 33578.68 

经过一些研究(检查等待和高峰stream量运行的网站),上述“问题”实际上不是问题。

当我们删除了一个瓶颈(旧的日志存储)时,问题就出现了。 所以当我们得到更快的磁盘传输日志的数据磁盘可以处理更多的交易/秒,因此队列长度增加。

这也解释了为什么磁盘空闲时间是好的。

对于快速磁盘系统(使用caching等)来说,“磁盘时间”计数器似乎是无用的。