我创建了一个虚拟文件系统,如下:
dd if=/dev/zero of=/home/tmpfs/fs.img bs=4096 count=600000
mke2fs -F -t ext4 -q /home/tmpfs/fs.img
mount -o loop=/dev/loop6 /home/tmpfs/fs.img /home/test
运行dd if=/dev/zero of=/home/tmpfs/testfile bs=4096 count=1000
产量
1000+0 records in
1000+0 records out
4096000 bytes (4.1 MB) copied, 0.00143575 s, 2.9 GB/s
运行dd if=/dev/zero of=/home/test/testfile bs=4096 count=1000
产量
1000+0 records in
1000+0 records out
4096000 bytes (4.1 MB) copied, 0.00361518 s, 1.1 GB/s
我预计性能会相同,所以我想知道如何解释这种退化?我怎样才能提高性能?我正在 Docker 容器内运行此设置。
答案1
写入/home/test/testfile
会经过两个文件系统,即您写入的 ext4 文件系统/home/tmpfs/fs.img
以及公开的任何文件系统/home/tmpfs
。我不知道仅此一点是否会对性能产生 50% 以上的影响,但我预计它会对性能产生影响。