Ted*_*sen 1 performance hardware-raid
我已经设置了两个与光纤通道相连的 DS4100 SAN。我设置了多个 RAID 配置:RAID10 跨越每个 SAN 中的 4 个磁盘,几个 RAID5。(由 DS4100 处理的硬件 RAID)
我正在运行 32 位 Windows 2008 数据中心版。我已经通过光纤通道将服务器连接到 SAN。我已禁用“使用镜像写入缓存”。
现在无论我做什么,我似乎都无法从 SAN 存储中获得超过 40MB/s 的性能。我希望 RAID5 中有更多的 4 个条带磁盘(RAID10,总共 8 个)或 6 个磁盘。
我可以从 RAID5 中的 6x400GB SATA 磁盘中获得什么性能?
知道我可以检查什么来找出它为什么这么慢吗?
让我们谈谈每秒 I/O 操作数 (IOPS)
如果您假设您有这些磁盘,它们的平均延迟为 4.17 毫秒(这取决于盘片大小及其旋转速度(在本例中为 7200RPM))。您还需要知道平均读/写寻道时间才能真正计算 IOPS。该站点声称平均寻道时间为 12 毫秒(这太可怕了,这将是您出现问题的原因,我们将看到...)
确定 IOPS 非常不精确,因为要正确使用,您需要知道读取百分比与写入百分比的关系(写入比读取慢,因为显然需要更精确地放置磁头)。
IOPS 的计算是 1 /(平均延迟 + 平均寻道时间),因此每个驱动器将能够达到 1 / (0.00417s + 0.012s),或 1/.01617,或大约 60 IOPS。
所以这是一个驱动器。但是你有几个!
您提到了一个 8 磁盘 RAID-10 阵列。这很好,因为虽然您必须写入数据两次,但您可以一次读取所有 8 个数据。
假设 100% 读取工作负载,60 IOPS X 8 个驱动器 = 480 IOPS。
但是,IOPS 与吞吐量有何关系?好吧,我们必须回到“不精确”部分,因为这取决于您的磁盘 I/O 的随机百分比。
在 100% 随机工作负载上,您可以假设一个操作为您提供一个块。那么,块大小有多大?
根据此 PDF,DS4100 的块大小为 16k。
我们可以使用它来计算您可以获得的绝对输出量。
在大约 480 IOPS 时,每个 IOPS 获得 16KB,您将在纯随机工作负载下拉动 7.68MB/s。因为您的工作负载不是随机的,所以您的速度大约是这个速度的 5.25 倍。
看,我严重怀疑您是否会使用这些驱动器获得大量数据。12 毫秒的寻道时间几乎是犯罪,如果情况确实如此(找出答案),而且您可能也在写入数组,即使您不知道自己是这样。
我的建议是:了解您的 I/O 配置文件是什么样的。最小化写入量(如果您不关心 POSIX 兼容性,则挂载它 noatime)。获得更好的磁盘。