参考:Azure 托管磁盘
SQL Server 2019;视窗 2016
C:操作系统映射到 128 GB (S10 @ 60mb/sec)。
到目前为止,一切都很好。我有用于数据、索引、临时数据库、日志和本地备份的驱动器。
数据、索引、TempDB 磁盘模式:读/写;日志和本地备份:(大部分)顺序写入。
现在这里变得不确定:
我是否更喜欢拥有多个 Azure 磁盘(例如 1 x P10 @ 100mb/s [128 GB]、3 x P20 @150mb/s [512 GB])
或者我应该做得更大(吞吐量更高)并将所有内容存储在同一个磁盘上(例如 P40 @250mb/s [2 TB])?
这允许为操作系统提供 512GB 的数据驱动器、512GB 的索引驱动器和 128GB 的 TempDB 驱动器。512 GB 的 SQL 日志和备份。
这个问题涉及通过操作系统访问数据库文件的 SQL Server,以及暴露虚拟磁盘的虚拟基础架构......
针对 P40 磁盘的每个线程是否有 250mb/s 的容量?如果我在 VM 的操作系统中将此 2TB VHD 文件分配为 4 个逻辑磁盘......它会比分配为单个驱动器的 3 个较低层磁盘的性能更高吗?
250 mb/s 是整体容量,而不是每个访问线程。
其他几点。应该有一层 Azure-VM 提供 SSD 作为临时驱动器,您绝对应该将其用于 TempDB。确保设置权限可能需要一些时间,以便当机器重新启动时它对那里的 TempDB 具有适当的权限,但这是值得的。这是一个 FAST 磁盘,虽然它是暂时的(不会在重新启动后保持不变),但它是我过去在 Azure-VM 上使用 SQL Server 时放置 TempDB 的地方。
最后,我将为您需要的每个驱动器提供单独的磁盘(或磁盘组)。如果您对磁盘进行条带化,则总体吞吐量会大大增加……最多大约 4 个磁盘,之后您不会获得更多的实际吞吐量。
所以,我的初始设置通常是:Azure VM
如果我有多个 IOPS 饥渴的数据库,那么我通常会为它们添加额外的驱动器,以隔离它们所需的吞吐量。
最后的想法:为所有驱动器使用 SSD 可能很诱人,但看看标准磁盘是否可以提供足够的吞吐量(尤其是在对它们进行条带化之后)。使用标准磁盘,您只需为实际存储的内容付费,而不是为您保留的内容付费;而 SSD,无论您使用多少,您都需要为保留的内容付费。