gpt4 book ai didi

sql-server - 为什么最佳实践告诉您在 Azure VM 上的 SQL Server 日志驱动器上禁用缓存

转载 作者:行者123 更新时间:2023-12-03 00:39:16 26 4
gpt4 key购买 nike

根据这篇文章和其他几篇我发现的文章: Performance best practices for SQL Server

在 SQL Server 日志磁盘的高级存储磁盘上禁用缓存被认为是最佳实践。但是,我找不到任何地方可以解释原因。

有人有见解吗?

让我补充一点,我认为禁用日志驱动器上的只读缓存是一个问题,因为它使您必须在 VM 内设置两个单独的存储池,这使得在 Azure 内升级/降级 VM 更加成问题并且性能显着降低。

例如,假设您从 DS V13 开始,它有 16 个驱动器限制,但在受到限制之前,其中大约 6 个驱动器可以达到最大值(25000 IOP)。由于最佳实践规定对数据进行只读缓存,对日志不进行缓存,因此您将其中 8 个驱动器分配给数据,将 8 个驱动器分配给日志。

现在,服务器需要升级,因此您将其升级到 DS V14。现在,在受到限制之前,您最多可以使用 12 个驱动器(50000 IOP)。但是,您的数据驱动器的存储空间列大小仅为 8,限制为 40000 IOP。因此您没有充分发挥 IO 的潜力。

但是,如果您可以从 DS V13 开始,并将所有 16 个驱动器分配到一个存储池,然后将日志和数据都放在其中。您可以一直升级/降级到 DS V15,而不必担心无法充分发挥 IOP 的潜力。

另一种说法是:如果您为所有 16 个驱动器创建一个存储池,那么您在升级/降级 VM 时将具有更大的灵 active 。如果您必须创建两个存储池,则不必。

最佳答案

我们建议在托管日志文件的高级存储磁盘上配置“无”缓存。日志文件主要进行大量写入操作,它们不会从只读缓存中受益。两个原因:

  1. 合法的缓存内容将被日志中无用的数据驱逐。
  2. 日志写入也会消耗缓存 BW/IOPS。如果在磁盘上启用了缓存(只读或读写),则该磁盘上的每次写入也会将该数据写入缓存中。每次读取也会访问/将数据放入缓存中。因此,如果缓存打开,每个 IO 都会命中缓存。

谢谢,昂

关于sql-server - 为什么最佳实践告诉您在 Azure VM 上的 SQL Server 日志驱动器上禁用缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39623778/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com