Jam*_*son 5 performance sql-server-2012 tempdb ssd
我有一个将本地 SSD 用于 tempDB 的生产部署。我在 RAID1 配置中有 2 个 SSD。我看到平均读取时间为 1-2 毫秒,但所有四个 tempdb 数据文件的平均写入时间都显示为 1377 毫秒。
每个 tempdb 数据文件为 2GB,具有 1GB 的增长设置(自 5 个月前部署以来没有增长)
tempdb 日志显示平均读取时间为 67 毫秒,平均写入时间为 215 毫秒。
SSD 是三星 840 专业版。
以下代码是我用来获取统计信息的代码
SELECT a.database_Id,
a.file_id,
db_name(a.database_id) AS dbname,
b.name,
db_file_type = CASE
WHEN a.file_id = 2 THEN 'Log'
ELSE 'Data'
END,
UPPER(SUBSTRING(b.physical_name, 1, 2)) AS disk_location,
a.io_stall,
a.io_stall_read_ms / Case When a.num_of_reads = 0 Then 1 Else a.num_of_reads end AvgRead,
a.io_stall_write_ms / Case When a.num_of_writes = 0 Then 1 Else a.num_of_writes end AvgWrite,
Cast(Round(((( a.size_on_disk_bytes / 1024 ) / 1024.0 ) / 1024), 2) as float) AS size_on_disk_gb
FROM sys.dm_io_virtual_file_stats (NULL, NULL) a
JOIN sys.master_files b ON a.file_id = b.file_id AND a.database_id = b.database_id
ORDER BY a.io_stall DESC
Run Code Online (Sandbox Code Playgroud)
以下是返回的前 5 行
database_Id file_id dbname name db_file_type disk_location io_stall AvgRead AvgWrite size_on_disk_gb
2 1 tempdb tempdev Data F: 19782846713 2 1377 2
2 3 tempdb tempdev2 Data F: 19782655021 2 1377 2
2 5 tempdb tempdev4 Data F: 19782364070 2 1377 2
2 4 tempdb tempdev3 Data F: 19782151571 2 1377 2
2 2 tempdb templog Log F: 378829065 67 215 1
Run Code Online (Sandbox Code Playgroud)
所以我在 SSD 上的 tmepdb 文件是我拥有的最慢的驱动器。我应该从配置/基础设施的角度看什么?我目前正在研究 tempdb 的应用程序使用情况和任何内存溢出,但我没有看到任何可怕的事情。
不久前我们通过更换服务器上的 RAID 控制器解决了这个问题。磁盘和服务器配置都很好,但 RAID 控制器似乎无法处理 IO。
我们现在的读取时间约为 2 毫秒,写入时间 <= 5 毫秒
归档时间: |
|
查看次数: |
1478 次 |
最近记录: |