什么是 tmpfs?
tmpfs 是 Linux 提供的虚拟内存文件系统,可以用于高性能 I/O。
注意:它不是永久的,只是暂时存放。重启 os,tmpfs 中的文件会消失(和内存类似)。
在 linux 下,它默认最大为内存的一半大小,使用df -h
命令可以看到,且大小不是固定的,。它并不会真正的占用这块内存,如果/dev/shm/
下没有任何文件,它占用的内存实际上就是 0 字节;如果它最大为 1G,里头放有 100M 文件,那剩余的 900M 仍然可为其它应用程序所使用,但它所占用的 100M 内存,是绝不会被系统回收重新划分的。
性能对比
用 nodejs 做了下性能对比,测试代码如下:
1 | const fs = require("fs"); |
结果如下:
可以看到,tmpfs 比普通硬盘的 I/O 快了近 3 倍。测试的 package.json 很小,如果文件更大,差距更明显。