tmpfs 的 size=2G 表示内存使用上限为 2GB,超限写入失败且不启用 swap;需提前创建挂载点,未指定 size 时默认可达物理内存一半;持久化需配置 /etc/fstab,支持 remount 动态调大小。

直接用 mount -t tmpfs -o size=2G tmpfs /mnt/mytmpfs 就能创建一个最大占用 2GB 物理内存的 tmpfs 文件系统。关键不是命令本身,而是理解 size 限制生效的前提、调整方式和常见陷阱。
size=2G 的实际含义与生效条件
这个参数明确设定了该 tmpfs 实例最多可使用的内存上限为 2GB,超出后写入会失败(返回 ENOSPC),不会自动使用 swap 或突破限制。它不等于“预分配”,而是动态按需使用,上限可控。
- 挂载点目录(如
/mnt/mytmpfs)必须提前创建:mkdir -p /mnt/mytmpfs - 若目标目录已有内容,挂载后原内容会被隐藏,卸载才可见——这不是数据丢失,是挂载覆盖
- 未指定
size=时,tmpfs 默认可能占物理内存一半(例如 16GB 内存 → 默认约 8GB),容易误判为“泄漏”
让配置持久化:开机自动挂载
临时挂载在重启后失效。要长期生效,需写入 /etc/fstab:
tmpfs /mnt/mytmpfs tmpfs defaults,size=2G 0 0
- 保存后执行
sudo mount -a测试语法是否正确,无报错即生效 - 可追加安全选项,如
noexec,nosuid,nodev,mode=755,防止执行恶意程序或提权 - 若用于敏感临时数据,建议加
uid=1001,gid=1001限定属主
运行中动态调整大小
已挂载的 tmpfs 可以在线扩容或缩容,无需卸载,原有文件保留:
sudo mount -o remount,size=4G /mnt/mytmpfs
- 缩容需谨慎:若当前已用内存超新上限,remount 会失败(报错 Invalid argument)
- 调整后可用
df -h /mnt/mytmpfs立即验证新 size 是否生效 - 注意:某些旧内核(size=5%),固定字节数或带单位(2G、2048M)最通用
避免常见误用与风险
/dev/shm 和 /tmp 是最常被 tmpfs 挂载的路径,但默认限制未必合理:
- RHEL/CentOS 6 默认
/dev/shm仅 64MB,现代应用(如数据库共享内存段)极易填满,应显式调大 -
/tmp若未在/etc/fstab中设size=,可能随物理内存增大而膨胀,挤占可用内存 - 监控建议:定期用
find /dev/shm -type f -size +100M查找异常大文件,排查是否程序未清理临时段











