这是SathiyaMoorthy撰写的来宾帖子。
使用ramfs或tmpfs,您可以分配一部分物理内存以用作分区。您可以挂载此分区并开始写入和读取文件,例如硬盘分区。自从你’将对RAM进行读写操作会更快。
当重要的过程由于磁盘写入而变得非常慢时,可以选择ramfs或tmpfs文件系统来将文件写入RAM。
tmpfs和ramfs挂载都将为您提供从主内存快速读取和写入文件的能力。当您在一个小文件上进行测试时,您可能不会看到太大的差异。您’仅当您将大量数据写入文件并带来一些其他处理开销(例如网络)时,才会注意到差异。
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 上 /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 拉姆夫斯 -o size=20m 拉姆夫斯 /mnt/ram
以下安装命令中的最后一行显示了上面已安装的/ mnt / ram 拉姆夫斯文件系统。
# mount /dev/sda2 上 / type ext3 (rw) proc 上 /proc type proc (rw) sysfs 上 /sys type sysfs (rw) devpts 上 /dev/pts type devpts (rw,gid=5,mode=620) /dev/sda1 上 /boot type ext3 (rw) tmpfs 上 /dev/shm type tmpfs (rw) none 上 /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc 上 /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) fusectl 上 /sys/fs/fuse/connections type fusectl (rw) tmpfs 上 /mnt/tmp type tmpfs (rw,size=20m) ramfs 上 /mnt/ram type 拉姆夫斯 (rw,size=20m)
您可以在引导期间通过将条目添加到ramfs和tmpfs / etc / fstab.
3. 拉姆夫斯和Tmpfs
主要是ramfs和tmpfs都做相同的事情,只有很小的差异。
- 拉姆夫斯将动态增长。因此,您需要控制写入数据的过程以确保ramfs不会’不要超过系统中可用的RAM大小。假设您的系统上有2GB的RAM,并创建了1GB的ramfs,并挂载为/ tmp / ram。当/ tmp / ram的总大小超过1GB时,您仍然可以向其中写入数据。系统不会阻止您写入超过1GB的数据。但是,当它超过2GB的总RAM大小时,系统可能会挂起,因为RAM中没有保留数据的空间。
- Tmpfs将不会动态增长。它不允许您写超过您所能写的大小’在安装tmpfs时指定了ve。所以,你不’无需担心控制写入数据的过程,以确保tmpfs不会’不能超过指定的限制。它可能会给出类似于以下内容的错误“设备上没有剩余空间”.
- Tmpfs的用途 交换.
- 拉姆夫斯不使用swap。
4. 拉姆夫斯和Tmpfs的缺点
由于ramfs和tmpfs都正在写入系统RAM,因此一旦系统重新启动或崩溃,它将被删除。因此,您应该编写一个过程以定期间隔将数据从ramfs / tmpfs拾取到磁盘。您还可以编写一个进程,以在系统关闭时将数据从ramfs / tmpfs写入磁盘。但是,这对系统崩溃时没有帮助。
实验性 | Tmpfs | 拉姆夫斯 |
---|---|---|
填满最大空间并继续书写 | 会显示错误 | 将继续写作 |
固定尺寸 | 是 | 没有 |
使用交换 | 是 | 没有 |
挥发性储存 | 是 | 是 |
如果您希望您的过程更快地编写,则选择tmpfs是更好的选择,同时注意避免系统崩溃。
本文由SathiyaMoorthy撰写。他在 bksystems有兴趣撰写文章并在业余时间为开源做出贡献。极客的东西欢迎您的提示和 客座文章.
如果您喜欢这篇文章,您可能还会喜欢..
![]() |
![]() |
![]() |
![]() |
拉姆夫斯使用交换。 ?