我创建了一个用 Java 实现的搜索引擎。我想把这个程序放到服务器上测试一下。我的程序非常依赖磁盘 I/O,对磁盘的任何改进都会直接影响其性能。我首先想到的是使用 SSD 而不是 HDD。RAID-0 似乎很有趣,但我也需要 RAID-5。你能告诉我在这种情况下通常使用什么技术/硬件吗?
更新(使用):
该程序使用大量小型访问。通常它会检索并返回 HTML 文档/图像/js/css 文件。此外,读取量远高于写入量。但由于系统尚未进行大规模使用测试,因此无法给出确切数字。
答案1
与普通驱动器相比,SSD 非常适合小型随机读取。也就是说,如果这不仅仅是一个科学项目,您需要某种形式的保护。RAID 0 根本不是保护 - 它只是使得如果任何驱动器发生故障,您将丢失所有数据。如果您使用 SSD,最好使用带有两个驱动器的 RAID-1。它将使您能够承受一次故障。根据您使用的 RAID 控制器的类型,您可能会获得一些灵活性或优势。
首先,如果控制器性能不错,您实际上可以获得两个驱动器的读取性能,尽管写入性能只能达到一个驱动器的水平。其次,如果控制器灵活一些,并且您可以承受这种性能下降,那么您可能能够找到一个控制器,让您可以将 SSD“镜像”到普通盘片驱动器。这将使您的读取速度与 SSD 一样快,写入速度与 SSD 或盘片一样快(取决于您执行的是随机 IO 还是顺序 IO),并且如果您丢失了 SSD,您的整体性能将降低到盘片驱动器的水平。