为什么磁盘密集型应用程序在 SAN 上的运行速度比在物理磁盘上的运行速度更快?

为什么磁盘密集型应用程序在 SAN 上的运行速度比在物理磁盘上的运行速度更快?

为什么磁盘密集型应用程序在 SAN 上的运行速度比在物理磁盘上的运行速度快?我原本以为物理磁盘会稍微快一点,但实际上,当工作驱动器设置为 SAN 上的分区时,该过程的运行速度快了 100 倍。

我们的猜测是,SAN 已经过优化,速度很快,而物理磁盘调整设置与操作系统(Solaris)相关,并且未经触碰或修补操作系统。

在活动最频繁期间,磁盘 I/O 以 100% 运行,并且由于多个进程同时写入磁盘,因此完成写入的时间超过 2 秒。

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

答案1

我一点也不惊讶。SAN 阵列通常包含很多磁盘。磁盘 I/O 的限制因素是单个磁盘的速度,这些磁盘会堆叠在一起。RAID10 中的 6 个本地驱动器的性能将优于 2 个驱动器,SAN 上的 80 个驱动器的性能将优于 10 个本地驱动器。当然,存在变数,但这就是它的工作原理。

此外,如果 SAN 涉及任何 SSD,事情就会变得非常快。

答案2

这几乎肯定是由于缓存造成的。DAS 可能具有最小的缓存,而大多数企业 SAN 具有数 GB 的缓存。我猜应用程序正在饱和 DAS 的缓存,但不是 SAN 的缓存。

答案3

从概念上讲,从 SAN 提供磁盘服务似乎总是比在本地提供磁盘服务要慢。然而,有很多因素可以扭转这一局面,使 SAN 成为一种更快的选择。其中一些因素是:

  • 您的工作负载是否需要快速寻道时间或快速吞吐量,或者两者兼而有之?
  • SAN LUN 和本地磁盘上分别有多少个主轴?
  • 与本地磁盘接口相比,SAN LUN 和服务器之间的总线速度是多少?
  • 与本地磁盘相比,SAN LUN 上有多少读/写缓存可用?
  • SAN LUN 上的磁盘旋转速度与本地磁盘相比是多少?
  • 与本地磁盘相比,SAN LUN 上还发生了哪些其他 IO 活动?
  • SAN 和本地存储上的阵列属于哪种 RAID 级别?

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

答案4

这一切都取决于有多少个可用的主轴......主轴数量越多,访问任何给定数据的速度就越快。如果您的 IO 密集型任务繁重,尤其是如果您使用数据库应用程序,那么您可以很容易地使用 SAN 解决方案来埋没本地磁盘性能,该解决方案可以拥有更多数量的磁盘组来管理核心数据、索引等。

使用本地磁盘子系统,您还可能与其他操作共享对读/写头的访问,例如读/写交换、本地操作系统和库文件访问、应用程序访问等...虽然单独操作速度很快,但所有读/写操作将读/写头从磁盘的一个区域移动到另一组操作以满足您的应用程序要求所需的集体时间肯定会影响性能。

相关内容