写入 ext4、8GB 分区与 512MB 分区

写入 ext4、8GB 分区与 512MB 分区

我有一个与编程略有相关的问题,但主要与 ext4 的工作原理有关。

我有一个程序,它将 128MB 写入一个文件,并更改随机对齐的偏移量。我每次写入调用都会写入 256KB。现在,两种设备之间的速度结果明显不同。

我有/dev/sda两个/dev/sdbext4,而sda是8GB,sdb是512MB。

例如, 上的写入任务/dev/sda需要 0.7 秒才能完成,而 上的相同写入任务需要 0.05 秒才能完成/dev/sdb。两个分区位于同一硬盘上,该硬盘不是 SSD。

编辑:抱歉我忘了补充一下,这是在 VirtualBox 虚拟机上运行的,主机是 Windows 系统。它绝对只有一个物理驱动器,因为我的笔记本电脑只有一个。

编辑2:我发现了这个问题,我在我认为的“/dev/sda”上运行程序,但它是我从主机系统安装的共享文件夹。我没有意识到文件系统会有所不同。

我很想知道幕后的哪些东西可以导致性能发生如此巨大的变化,谢谢!

答案1

由于这对于这里的评论来说有点太长了......

有两件事引起了我的兴趣:

首先,/dev/sda 和 /dev/sdb 是两个不同的物理驱动器,否则我们将讨论 /dev/sda1 和 /dev/sda2。因此,如果我们谈论不同的物理驱动器,它们的性能可能会有所不同。

其次,如果此信息错误,并且我们在同一驱动器上有两个分区(/dev/sda1 和 /dev/sda2),那么物理驱动器大小是多少?大于 2TB 分区的驱动器必须正确对齐,否则将会出现性能问题。难道你的一个分区已对齐,而另一个分区未对齐?除了程序之外,您是否尝试过通过其他方式测试分区速度?查看测试驱动器速度。

相关内容