我试图了解 I/O 领域的一些基础知识。我想知道的是,当人们谈论标准 HDD 上的磁盘 I/O 速度时,所提到的速度是在物理磁盘级别还是基于逻辑分区?我之所以问这个问题,也是因为我研究过的很多地方,都会问到关于磁盘的问题,尤其是linux,而在结果或答案中,人们通常会参考系统中存在的挂载点,而且双方都达成了共识。我觉得磁盘和分区这两个术语可以互换使用,这让我感到困惑。
我正在使用一些分布式应用程序,磁盘 I/O 速度对于这些应用程序至关重要。现在,我有一个物理磁盘,该物理磁盘上有多个安装点。因此,在这里,如果磁盘 I/O 最大容量为 70 MB/s,是否意味着所有安装放在一起,我只能达到 70 MB/s(意味着速度是物理磁盘而不是基于分区的),即使应用程序可以比这更快地将更多数据并行推送到多个安装点,或者我可以让每个分区达到 70 MB/s 的最大值吗?我倾向于认为它是基于物理磁盘的。我只需要一些额外的验证,也许还需要一些材料,我可以在其中获得有关该主题的更多知识。如果它是基于磁盘的,我正在考虑添加更多磁盘,以便应用程序可以获得一些额外的速度。
答案1
磁盘 I/O 速度由硬件的物理特性决定:连接磁盘的总线(SCSI、USB 等)的速度以及磁盘本身的速度(始终是平均值,您可以根据需要选择磁盘 I/O 速度)。必须考虑磁盘内部缓冲区)。
从 I/O 速度方面来看,如果您在逻辑分区、文件内部进行 I/O,或者在整个磁盘上进行原始 I/O,则没有任何区别。
所以,是的,如果您有一个包含多个分区(“挂载点”)的物理磁盘,则总速度将受到单个磁盘的物理 I/O 速度的限制。实际上会更糟,因为分区位于盘片的不同区域,如果同时写入多个分区,则磁头必须移动(“寻找”)。
相反,如果您有多个物理磁盘,每个物理磁盘对应一个安装点,理论上它们可以并行工作,并且物理磁盘的 I/O 速度会增加。这仅在一定程度上有效,当然,您的计算机内部总线也有带宽限制,并且您不能全速向任意多个磁盘控制器提供数据。
所以,是的,添加更多磁盘可以提高速度(除非限制不在物理磁盘 I/O 中,而是在其他地方)。