为什么在磁盘上占用大量磁盘的应用程序在SAN上的运行速度比在物理磁盘上的运行速度快?


21

为什么在磁盘上占用大量磁盘的应用程序在SAN上的运行速度比在物理磁盘上的运行速度快?我本来希望物理磁盘稍微快一点,但实际上,当将工作驱动器设置为SAN上的分区时,该过程的运行速度快了100倍。

我们的猜测是,SAN开箱即用地进行了优化,以实现快速的发展,而物理磁盘调优设置与OS(Solaris)相关,尚未被修改或打补丁。

在最高活动期间,磁盘I / O的运行速度为100%,完成写入的时间超过2秒,因为有多个进程同时向磁盘写入数据。

(仅供参考,所涉及的应用程序是Informatica PowerCenter)

Answers:


23

我一点也不惊讶。SAN阵列通常包含许多磁盘。磁盘I / O的限制因素是单个磁盘以及这些堆栈的速度。RAID10中本地6个驱动器的性能要好于2个,而SAN 10中80个驱动器的性能要好于本地10个驱动器。当然有变量,但这就是它应该起作用的方式。

此外,如果SAN涉及任何SSD,事情就会变得一团糟。


15

几乎可以肯定是由于缓存。DAS可能具有最少的缓存,其中大多数企业SAN具有多个千兆字节的缓存。我猜该应用程序将使DAS的缓存饱和,但不会使SAN的缓存饱和。


1
SAN上明显的延迟要比DAS更长,但是使用所有缓存,SAN的整体吞吐量更高。好答案。
马特

然后通常会有一个预读缓存,因此它的随机读/写受到最大的冲击,然后您就可以缓存写入,因此只有它的随机读会受到影响,但延迟仍然很小。
Silverfire

1
在SAN上正确配置的未过载的存储子系统应为您提供1-2ms左右的随机写入时间。
MikeyB 2011年

@MikeyB我不同意你的看法。1-2ms写入SAN似乎正确。但是Charles的SAN配置比其超负荷的物理磁盘快100倍(后者的写入时间大于2秒)。因此,即使他的SAN性能也不是很好,只有20毫秒而不是1-2毫秒...?
Ellie Kesselman

9

从概念上讲,总感觉像从SAN提供磁盘服务要慢于本地提供磁盘服务。但是,有很多因素可以扭转这种状况,导致SAN成为更快的选择。其中一些因素是:

  • 您的工作量是否需要快速查找时间或快速吞吐量,或两者都需要?
  • 与本地磁盘相比,SAN LUN上有多少个主轴?
  • 与本地磁盘接口相比,SAN LUN和服务器之间的总线速度是多少?
  • SAN LUN和本地磁盘上有多少可用的读/写缓存?
  • 与本地磁盘相比,SAN LUN上的磁盘旋转速度是多少?
  • SAN LUN和本地磁盘上还有哪些其他IO活动?
  • SAN和本地存储上的阵列是什么RAID级别?

所有这些都会影响您在SAN和本地磁盘上的性能。


1

一切都取决于可用的主轴数。...主轴数越多,访问任何给定数据的速度就越快。如果您需要大量IO,特别是如果您是数据库应用程序,则可以很轻松地使用SAN解决方案来掩盖本地磁盘的性能,SAN解决方案可以拥有更多的磁盘集来管理核心数据,索引等。

使用本地磁盘子系统,您还可能会与其他操作共享对读/写磁头的访问权限,例如,以r / w交换,本地OS和库文件访问,应用程序访问等。对于所有读/写动作,将读/写磁头从磁盘的一个区域移动到覆盖一组动作到另一组动作,以满足您的应用程序要求,无疑可以提高性能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.