我感觉我们的 SAN 性能不佳,因此我借助 Ozar 先生的博客文章运行了 SQLIO。
我遇到的第一个问题是无法创建 20GB 的测试文件。
这就是结果
using 64KB random IOs
enabling multiple I/Os per thread with 8 outstanding
buffering set to use hardware disk cache (but not file cache)
using current size: 2011 MB for file: M:\TestFile.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec: 3873.51
MBs/sec: 242.09
latency metrics:
Min_Latency(ms): 0
Avg_Latency(ms): 16
Max_Latency(ms): 1465
histogram:
ms: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
%: 3 2 3 3 4 5 5 5 5 5 5 5 5 5 4 4 4 3 3 2 2 2 2 1 13
using 64KB sequential IOs
enabling multiple I/Os per thread with 8 outstanding
buffering set to use hardware disk cache (but not file cache)
using current size: 2011 MB for file: M:\TestFile.dat
initialization done
CUMULATIVE DATA:
throughput metrics:
IOs/sec: 5279.99
MBs/sec: 329.99
latency metrics:
Min_Latency(ms): 0
Avg_Latency(ms): 11
Max_Latency(ms): 267
histogram:
ms: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
%: 1 1 3 5 11 8 6 5 4 4 5 7 7 6 5 4 3 3 2 2 1 1 1 1 4
关于 SAN 的指标,您能说些什么吗?
我是否应该考虑其他提供商?
据说 SAN 是“最先进的 HP SAN”。
答案1
如果您的 SAN 真的是最先进的,那么您将拥有磁盘和 SSD 之间的自动分层。对 SSD 执行的任何工作的性能都将比对磁盘执行的性能快得多。此外,您将拥有很多缓存,这意味着写入通常甚至不会触及磁盘/固态硬盘。我假设您谈论的是 p9500,但是如果这个假设是错误的,您真的应该编辑您的问题以获取有关您的配置的更多信息。
如果您正在测试读取(这是比较典型的情况),那么您将需要尝试根据池组成隔离空间。将文件所在的 LDEV 放在具有更多主轴或更高百分比的 SSD 的池中,它应该会更快。
尽管如此,唯一重要的指标是全速运转时的延迟。任何机器在利用率不足时都可以运行得很快,但一旦有大量应用程序同时运行,就要注意了。我的建议是模拟很多在更多服务器上执行更多 IO,看看在延迟超过 10 毫秒之前可以生成多少 IO。生成负载时,您希望拥有与实际工作负载相同的读取与写入比率以及顺序与随机比率。如果做不到这一点,您需要 70% 的读取与 30% 的写入,以及 20% 的顺序与 80% 的随机。
答案2
关于来自 SAN 的指标我们能说些什么呢?
没有什么。
使用当前大小:2011 MB
这不是一个现实的测试。SAN 可能有一个写回缓存,并且您的文件足够繁忙且足够小,可以逐块完全缓存。因此,您实际上没有测量任何有价值的东西。
这就像通过前 10 米的加速度来测量汽车的最高速度。行不通。
考虑到硬件和工作量,您的测试文件必须切合实际。这意味着,除非您通常拥有一个不繁忙的 SAN 和一个小型数据集,否则您必须在生产大小的测试文件上运行它 - 至少一个比所涉及的缓存大得多的测试文件。因此,仅在 32gb SAN 缓存(在 HP EVA 上看到)上,最好有一个 128gb 的测试文件。
IO 数/秒:3873.51
这要么是高端 SAN,要么是不错的缓存。假设每张光盘的 IOPS 大约为 450,这意味着您可以独立运行 7-8 张光盘。可以 - 或者可以像我说的那样从缓存中运行。