对于新的数据库服务器,哪个分区将从 SSD 中受益最多?

对于新的数据库服务器,哪个分区将从 SSD 中受益最多?

我正在为 Microsoft SQL Server 环境配置一个新的数据库服务器。过去,我会为操作系统、数据、事务日志和 tempdb 创建四个单独的 RAID 阵列。现在,我正在考虑添加几个 SSD 以进一步提高性能的可能性。我的预算只有两个 SSD,我想镜像它们以防其中一个发生故障。因此,我只能使用 SSD 来替换我的四个标准阵列中的一个。

哪种选择可以最大程度地提高性能?

  • 使用 SSD 来运行操作系统
  • 使用 SSD 存储数据
  • 使用 SSD 存储事务日志
  • 使用 SSD 存储 Tempdb

答案1

如果您当前系统的数据/日志/tempdb 已经分区,我会查看每个分区的 IO 统计信息并据此做出决定。

我见过大多数人将 SSD 用于 TEMPDB。2005 及以后的版本对 TEMPDB 的依赖性比以前的版本要大得多。并且根据您在 SQL Server 上运行的内容,它可能是利用率最高的数据库(查看您的 SharePoint)。

但我首先会先观察一下你的环境,看看那里发生了什么。

HTH,丹

答案2

Paul Randal 有一系列的 SSD 基准测试:

从他的结论来看,SSD 的最佳选择是密集的随机 IO 负载,这将使它们成为数据或 Tempdb 的候选。哪一个最好,取决于您预期的负载细节。我会研究sys.dm_io_virtual_file_statssys.dm_db_index_usage_stats在处理相同负载(或相同类型负载)的现有服务器上,查看 MDF/NDF 的 IO 压力累积在哪里,并将这些文件放在 SSD 上。

LOG 在 SSD 上没有多大意义,典型的 SCSI 阵列在顺序写入方面的表现优于它们。OS 也是如此,SQL Server 主机永远不应接触 OS 文件或分页文件。

答案3

执行随机读写访问的分区,通常在作为数据分区(和 tempdb 数据)的数据库主机上。日志分区通常只能按顺序访问,因为大多数日志都是循环缓冲区。

如果您计划经常重启服务器,那么由 SSD 支持的操作系统分区将会带来最大的好处。

答案4

这还取决于您的 SSD 驱动器上设置的 RAID 类型。如果是 RAID 10,则日志文件和 tempdb 数据库最好存储在 SSD 上,因为日志和 tempdb 主要用于写入操作,而 RAID 10 提供最佳写入性能。有时在检查点之后,您会看到日志文件上的读取活动。相反,如果是 RAID 5,则数据文件最好存储在 SSD 上,因为 RAID 5 针对读取活动进行了更多优化。如果您在 SSD 上有足够的存储空间,您也可以在 SSD 上安装操作系统。但真正重要的是将数据与日志文件隔离,如果可能的话,也与 Tempdb 隔离。

此外,Paul Randal 也做了一个很好的分析这个博客。他通过列举大量可能发生的案例来详细分析,这给我留下了深刻的印象。

相关内容