我的程序创建了许多小的短期文件。它们通常会在创建后一秒钟内被删除。这些文件位于由真实硬盘支持的 ext4 文件系统中。我知道 Linux 会定期将 ( pdflush) 脏页刷新到磁盘。由于我的文件是短暂的,很可能它们没有被pdflush. 我的问题是,我的程序是否会导致大量磁盘写入?我关心的是我硬盘的寿命。
由于文件很小,我们假设它们的总和小于dirty_bytes和dirty_background_bytes。
Ext4 开启了默认日志,即元数据日志。我还想知道是元数据还是数据写入磁盘。
一个使用ext4的简单实验:
创建一个 100MB 的图像...
# dd if=/dev/zero of=image bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.0533049 s, 2.0 GB/s
Run Code Online (Sandbox Code Playgroud)
让它成为一个循环设备......
# losetup -f --show image
/dev/loop0
Run Code Online (Sandbox Code Playgroud)
制作文件系统并挂载...
# mkfs.ext4 /dev/loop0
# mount /dev/loop0 /mnt/tmp
Run Code Online (Sandbox Code Playgroud)
使用短期文件进行某种运行。(将此更改为您喜欢的任何方法。)
for ((x=0; x<1000; x++))
do
(echo short-lived-content-$x > /mnt/tmp/short-lived-file-$x
sleep 1
rm /mnt/tmp/short-lived-file-$x ) &
done
Run Code Online (Sandbox Code Playgroud)
卸载、同步、解锁。
# umount /mnt/tmp
# sync
# losetup -d /dev/loop0
Run Code Online (Sandbox Code Playgroud)
检查图像内容。
# strings image | grep short-lived-file | tail -n 3
short-lived-file-266
short-lived-file-895
short-lived-file-909
# strings image | grep short-lived-content | tail -n 3
Run Code Online (Sandbox Code Playgroud)
就我而言,它列出了所有文件名,但没有列出任何文件内容。所以只有内容没有写。
| 归档时间: |
|
| 查看次数: |
1394 次 |
| 最近记录: |