分布在多个磁盘上的访问

我有一个相当大的应用程序,需要同时访问相当多的(300+)大文件,并通过同时读取它们来访问它们。

如果所有的文件都放在一个磁盘上(如果我有一个足够大的磁盘),应用程序的执行速度就会变慢。 为了解决这个问题,我将这些文件分布在几个物理磁盘和机器上,NFS安装分区并使用bash脚本创build大量的sym链接,这样所有的文件都显示在1个巨大的目录中。 这可以提高执行速度,3个磁盘分割可以提高执行速度10倍以上。

有没有人有一个不太麻烦的方式来设置这个build议? 我担心的是,在RAID或Gluster中的条带化可能不会很好,因为任何一个文件都不需要高读取速度,但是总是需要大量的同时访问。

  • 使用NFS而不是许多本地磁盘将显着降低速度,因为任何现代磁盘都可以饱和1GB以太网连接,更不用说多于一个了。
  • 使用RAID0也将显着提高你的速度,而不会造成pipe理开销,但理论上平均只有使用符号链接布局的磁盘速度提高了50%(50%,因为你的性能取决于有多less条纹可以在同一时间使用 – 在最坏的情况下,您的应用程序必须从只有一个磁盘读取所有内容,最好是从每个磁盘读取)。
  • 使用SSD将显着提高您的性能。 这是昂贵的,但在这种情况下没有什么可以打败SSD。

所以,简而言之,我会把磁盘放在本地系统中,尝试不同的RAID块大小以优化性能,并认真考虑购买SSD。