Linux 上 RAMFS 和 TMPFS 的介绍

网友投稿 1127 2022-05-28

使用 ramfs 或 tmpfs,您可以分配一部分物理内存用作分区。你可以挂载这个分区,像硬盘分区一样开始读写文件。由于您将读取和写入 RAM,因此速度会更快。

当重要进程由于磁盘写入而变得非常缓慢时,您可以选择 ramfs 或 tmpfs 文件系统将文件写入 RAM。

tmpfs 和 ramfs mount 都将为您提供从主内存快速读取和写入文件的能力。当您在一个小文件上测试时,您可能看不到巨大的差异。只有当您将大量数据写入具有其他处理开销(例如网络)的文件时,您才会注意到差异。

1.如何挂载Tmpfs

# mkdir -p /mnt/tmp # mount -t tmpfs -o size=20m tmpfs /mnt/tmp

下面 df -k 的最后一行显示了上面挂载的 /mnt/tmp tmpfs 文件系统。

# df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 32705400 5002488 26041576 17% / /dev/sda1 194442 18567 165836 11% /boot tmpfs 517320 0 517320 0% /dev/shm tmpfs 20480 0 20480 0% /mnt/tmp

2. 如何挂载 Ramfs

# mkdir -p /mnt/ram # mount -t ramfs -o size=20m ramfs /mnt/ram

下面挂载命令的最后一行显示了上面挂载的 /mnt/ram ramfs 文件系统。

# mount /dev/sda2 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) /dev/sda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) fusectl on /sys/fs/fuse/connections type fusectl (rw) tmpfs on /mnt/tmp type tmpfs (rw,size=20m) ramfs on /mnt/ram type ramfs (rw,size=20m)

您可以通过在/etc/fstab 中添加一个条目,在引导期间挂载 ramfs 和 tmpfs 。

3. Ramfs 与 Tmpfs

主要是 ramfs 和 tmpfs 做同样的事情,只有很少的细微差别。

Ramfs 将动态增长。因此,您需要控制写入数据的过程,以确保 ramfs 不会超过系统中可用的 RAM 大小。假设您的系统上有 2GB 的 RAM,并创建了一个 1GB 的 ramfs 并挂载为 /tmp/ram。当 /tmp/ram 的总大小超过 1GB 时,您仍然可以向其中写入数据。系统不会阻止您写入超过 1GB 的数据。但是,当它超过 2GB 的总 RAM 大小时,系统可能会挂起,因为 RAM 中没有地方可以保存数据。

Tmpfs 不会动态增长。它不允许您写入超过您在安装 tmpfs 时指定的大小。因此,您无需担心控制写入数据的进程以确保 tmpfs 不会超过指定的限制。它可能会给出类似于“设备上没有剩余空间”的错误。

Tmpfs 使用swap。

Ramfs 不使用交换。

Linux 上 RAMFS 和 TMPFS 的介绍

4. Ramfs 和 Tmpfs 的缺点

由于 ramfs 和 tmpfs 都在写入系统 RAM,因此一旦系统重新启动或崩溃,它就会被删除。因此,您应该编写一个进程,以定期从 ramfs/tmpfs 中提取数据到磁盘。您还可以编写一个进程,在系统关闭时将 ramfs/tmpfs 中的数据写入磁盘。但是,这在系统崩溃时对您没有帮助。

如果您希望您的进程写入速度更快,那么选择 tmpfs 是更好的选择,并且可以预防系统崩溃。

Linux 任务调度

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:GaussDB(DWS)数据库智能监控运维服务体系指标设计 - 查询监控
下一篇:GaussDB(DWS)性能调优系列实战篇二:十八般武艺之坏味道SQL识别
相关文章