![写入 ext4、8GB 分区与 512MB 分区](https://linux22.com/image/63108/%E5%86%99%E5%85%A5%20ext4%E3%80%818GB%20%E5%88%86%E5%8C%BA%E4%B8%8E%20512MB%20%E5%88%86%E5%8C%BA.png)
我有一个与编程略有相关的问题,但主要与 ext4 的工作原理有关。
我有一个程序,它将 128MB 写入一个文件,并更改随机对齐的偏移量。我每次写入调用都会写入 256KB。现在,两种设备之间的速度结果明显不同。
我有/dev/sda
两个/dev/sdb
ext4,而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 分区的驱动器必须正确对齐,否则将会出现性能问题。难道你的一个分区已对齐,而另一个分区未对齐?除了程序之外,您是否尝试过通过其他方式测试分区速度?查看这测试驱动器速度。