我们的 SAN 存在问题,我们一直在监控它的性能。一个让我们大吃一惊的指标是Primary Write Cache Hit Percent。具体来说,什么比例会被认为是有问题的?
我们聘请了两名顾问并与供应商交谈,他们都给了我们不同的数字。
我们的 SAN 存在问题,我们一直在监控它的性能。一个让我们大吃一惊的指标是Primary Write Cache Hit Percent。具体来说,什么比例会被认为是有问题的?
我们聘请了两名顾问并与供应商交谈,他们都给了我们不同的数字。
您的问题很难很好地回答,因为您缺少一些细节。
但是,我通常会说 - 写入缓存命中率应该是 100%,或者尽可能接近它。如果您考虑一下 - 与处理器和内存相比,旋转磁盘的速度很慢。特别是如果您包含 RAID,您可能需要计算奇偶校验并写入多次。
我们称之为“写入惩罚”——为了写入 RAID 5,您需要:
因此,每次写入需要 4 个 IO 的写入惩罚。(RAID 6 必须做类似的事情,但因为有双奇偶校验,所以写入惩罚为 6)。
这会将性能不佳的 SATA 驱动器变成非常糟糕的性能。但是你可以使用一些技巧。通过合并写入,您可以减少从磁盘回读的需要——如果您可以组装一个完整的条带,您根本不需要费心阅读,因为您拥有计算奇偶校验所需的一切。所以你的写惩罚显着下降。
在 4+1 RAID 5 上,每 4 次写入执行 5 次 IOP,写入惩罚为 1.25 - 这实际上比 RAID 1 更好,假设您可以“全条带写入”每个 IO。这对于诸如日志或事务日志之类的持续顺序写入特别有用,但对于“通用”用途,您并不总是拥有理想的场景。
同样 - 可以推迟写入 IO。大多数 IO 模式都是“突发的”——我们现在想要快速响应,但我们的平均值很低。例如,当您保存文件时 - 您想将所有文件写入磁盘,并且不想等待太久。但是一旦你完成了保存,你就不需要再写一段时间了。
因此,我们使用写入缓存来平衡“突发”并为相同的吞吐量提供非常快速的初始响应,并消除我们的 RAID 低效率。考虑到这一点 - 写入缓存命中率应该很高。100% 是理想的目标。
任何更少都意味着您的传入写入对于您的磁盘来说太快了 - 平均而言。一旦写入缓存已满,传入的 IO 必须被“保持”,这意味着延迟和系统性能非常差,因为您失去了从完整条带写入中获得的效率提升,并且您必须在传入写入时立即支付写入损失。
(可能有一些 IO 绕过写入缓存的有限例外情况,但通常是这种情况)。