tmpfs 内存文件系统是什么
tmpfs 是内存文件系统:文件内容放在内存里(内存压力大时可溢出到交换区),读写速度远快于磁盘,重启后内容全部清空。系统里的共享内存目录与运行期目录默认就是这种文件系统,很多程序靠它提速。它的风险同样明确:写入占用的是内存,写满会触发内存回收甚至把系统拖入内存不足状态,生产上必须显式限制容量并做监控。
基本信息
| 适用平台 | GNU/Linux(内核自带) |
|---|---|
| 语法 | mount -t tmpfs -o size=容量 tmpfs 挂载点 |
| 持久化 | 写进 fstab,选项里包含容量与权限 |
| 常见用途 | 加速临时读写、隔离敏感临时文件 |
| 数据特性 | 重启即清空,不保留持久数据 |
| 容量默认 | 未指定时约为物理内存的一半 |
典型使用场景
- 给高频临时读写的目录提速,例如编译中间产物与临时缓存。
- 放置进程间通信与共享内存文件,减少磁盘往返。
- 隔离敏感临时数据,重启即自动清除。
- 在容器与测试环境里提供快速的临时工作目录。
- 验证程序在内存文件系统上的性能上限。
常用写法
常用写法
mount -t tmpfs -o size=2G,mode=1777 tmpfs /ramdisk # 挂载 2G 内存盘
df -h /ramdisk # 确认容量与使用率
du -sh /ramdisk # 查看实际占用
umount /ramdisk # 卸载,内容立即消失
# fstab 持久化示例:
# tmpfs /ramdisk tmpfs size=2G,mode=1777,nosuid,nodev 0 0
mount | grep tmpfs | head # 查看现有内存文件系统项目与行为读法
| 项目 | 含义 | 使用要点 |
|---|---|---|
| 挂载类型 | 内存文件系统 | 内容随重启消失 |
| 容量参数 | 上限大小 | 必须显式指定,否则默认约一半内存 |
| 权限模式 | 目录权限 | 共享目录常用 1777 |
| 溢出行为 | 可写入交换区 | 内存紧张时增加换页压力 |
| 超限写入 | 返回空间不足 | 是文件写入失败而不是系统报内存错 |
| 数据持久性 | 重启清空 | 不能存放需要保留的数据 |
容量参数不写时要特别留意:默认值约为物理内存的一半,在多用途机器上可能大到危险,显式声明容量是硬要求。
挂载选项里加上禁止设备文件、禁止修改权限等限制,可以降低把临时目录当作攻击跳板的风险。
写入接近容量上限时会触发内存回收,严重时触发内存不足终止进程;生产上必须限制容量并对使用率做监控。