更新 #1

更新 #1

我一直在预生产集群(Dell R710 通过 2 个千兆以太网连接连接到专用 RAID10 SAN)的专用 DB SAN 上运行一系列负载测试,但我不确定我是否正确解释了数据。

作为参考,这是原始数据。

测试 1

sqlio v1.5.SG
using system counter for latency timings, 2727587 counts per second
parameter file used: paramD100.txt
    file d:\tmp\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
2 threads reading for 120 secs from file d:\tmp\testfile.dat
    using 64KB random IOs
    enabling multiple I/Os per thread with 2 outstanding
    buffering set to use hardware disk cache (but not file cache)
using specified size: 20480 MB for file: d:\tmp\testfile.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec:   372.12
MBs/sec:    23.25
latency metrics:
Min_Latency(ms): 1
Avg_Latency(ms): 10
Max_Latency(ms): 159

测试 2

sqlio v1.5.SG
using system counter for latency timings, 2727587 counts per second
parameter file used: paramD100.txt
    file d:\tmp\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
2 threads reading for 120 secs from file d:\tmp\testfile.dat
    using 64KB random IOs
    enabling multiple I/Os per thread with 2 outstanding
    buffering set to use hardware disk cache (but not file cache)
using specified size: 20480 MB for file: d:\tmp\testfile.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec:   358.26
MBs/sec:    22.39
latency metrics:
Min_Latency(ms): 1
Avg_Latency(ms): 10
Max_Latency(ms): 169

为了减少测试结果之间的差异,这些测试在连续两天的上午 11:30 进行。

鉴于这种负载模式,我是否应该预期获得的 MBPS 吞吐量会尽可能低,或者我是否正确解释了这一点并认为网络或 SAN(或全部)存在问题?

谢谢。

更新 #1

具体来说,设置如下。

生产数据库集群

Dell R710,配备 2 个 Broadcom 5709(支持 iSCSI 和 TOE 卸载,使用 Dell 的多路径 IO 软件)。是的,我看过“Broadcom - die mutha”帖子 :S

转变

2 个 Juniper EX4200-48T 充当单个虚拟交换机

每个集群上的每个 Broadcom NIC 的一个连接都连接到一个交换机,并且每个交换机到 SAN 有 2 个千兆位连接。

存储区域网络

Dell EqualLogic PS6000E iSCSI SAN,配备 16 个(14 个 + 2 个热备用)2TB 7200rpm 驱动器

据我所知,从我认为它应该如何工作来看,我们理论上应该获得 200mbps,但正如你所看到的,我们并没有得到。

更新 2

为了提供更多背景信息,这里有一张图表,显示了 4 次独立运行的平均 mbps。

作为参考,Y 轴是 MBPS,X 轴是 IO 类型(随机或连续)、待处理的 IO 和操作(读取与写入)。

图片已禁用,因此这里有一个链接 -图表显示了 4 次 SQLIO 运行的平均结果

这里有两件事让我担心——

  • 首先,随机读取吞吐量低于我的预期
  • 其次,随机写入 IO 稳定在 110mbps,而这表明该阵列应该能够实现更多功能。

对于此类设置,这是大致预期的模式吗?这里还有什么看起来不合适或错误的地方吗?

答案1

理论上我们应该能得到 200mbps

在你的梦里。当不进行随机 IO 时,大部分时间都花在从一个扇区跳到另一个扇区上。但是,对于随机 IO 和一些较慢的最终用户磁盘,这听起来差不多 - 欢迎来到一个世界,一对磁盘可以获得大约 300 IOPS,而 SSD 可以为您提供 60,000 IOPS。现在也许你明白 SSD 是随机 IO 的 SAN,最终用户喜欢的 MB/S 数字与数据库存储后端无关。

你还破坏的是:

每个线程启用多个 I/O,其中 2 个未完成

好的,鉴于 SATA NCQ(本机命令队列)可以智能地重新排序光盘中最多 32 个待处理请求,因此同时仅发送 2 个请求并不是最佳选择。您将得到 2x2 = 4 个未完成请求,但每个光盘可以处理 32 个请求。

他说,最终你需要 (a) 更快的磁盘 (b) 更多磁盘以获得更高的 IOPS。或者一个不错的二级缓存(Adaptec raid 控制器可以使用 SSD 作为读写缓存)。

答案2

不,你说得对,这根本不好 - 你没有提到 SAN 的布局,但考虑到它是 R10,那么你可以想象最坏的情况,即在这些 1Gbps 链路之一上至少有 4 个廉价 SATA 磁盘(由于 MAC 一致性,我怀疑两者是否会同时使用),即使这样,我预计随机读取 MBps 至少会翻倍,这是最坏的情况。有问题。

答案3

由于您没有提到 SAN 是什么,我假设它是通用的 iSCSI。

其中有哪些类型的磁盘?速度如何?RAID-10 上有哪些缓存(如果有)?

我同意 22MB/秒的速度太慢了,但如果只有 4 个 SATA 磁盘组成 RAID-10,那么 350 多的 IOPS 就差不多了。

相关内容