首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >systemctl启用tmp.mount

systemctl启用tmp.mount
EN

Unix & Linux用户
提问于 2019-04-12 16:34:26
回答 2查看 6.4K关注 0票数 2

考虑将/tmp目录挂载到基于tmpfs内存的文件系统上的做法,就像使用:systemctl enable tmp.mount一样

并考虑以下几点:

一个理由是:对不同路径使用单独的文件系统可以保护系统不因文件系统变得完整或失败而发生故障。

-

另一个理由是:当使用内存而不是磁盘时,一些在/tmp目录中编写文件的应用程序可能会看到巨大的改进。

磁盘缓存始终有效吗?我的意思是,当你写到任何文件夹(不仅仅是/tmp)时,你可能一直在写内存,直到它被刷新到磁盘.内核在引擎盖下处理所有这些,我认为我不需要去干预,调整事情。那么,做systemctl enable tmp.mount有什么真正的价值呢?

此外,(在CentOS7.6中)我正在测试这一点,以尝试了解我正在经历的事情:

  • CentOS 7.6安装在一个500 as的SSD上,它使用简单的磁盘分区作为
    • 1GB /dev/sda1/boot
    • 100 as /dev/sda2作为/boot/efi
    • 475 as /dev/sda3/

  • PC有8GB的DDR-4内存。
  • 如果我只做了systemctl enable tmp.mount,我就会得到
    • 3.9GB tmpfs/tmp

这个tmpfs /tmp at 3.9GB比默认的方法好吗?默认方式是:(a)由于磁盘缓存,最初基于RAM的内存高达~8GB;(b)当基于8GB内存容量的磁盘缓存时,可用的磁盘容量超过400 8GB?

EN

回答 2

Unix & Linux用户

发布于 2019-04-12 17:19:04

这种配置是否“增加价值”完全取决于所讨论的用例。“好”、“坏”,这些都是没有上下文的不同配置选项的有效标签。

对于具有大量RAM和较高事务号的系统,tmpfs文件系统可能会提高性能(例如:类型-2管理程序)。这可能是“好”用例。

或者,拥有少量内存但存储量很大的系统(例如:现在生产的任何一种网络垃圾)可能在物理编写的/tmp存储设备上表现得更好,因为内存中的任何东西都可以在未充分利用的情况下进行交换(如果交换也被激活的话)。对于tmpfs /tmp来说,这是一个“坏”的情况。

票数 3
EN

Unix & Linux用户

发布于 2023-05-05 18:18:07

使用tmpfs挂载路径时,默认大小为物理内存的一半。只要您的系统不受内存压力,您放置的任何文件都将在内存中,并且不会触摸磁盘。

这与在实际持久存储(如旋转磁盘、ssd或nvme)上写入文件形成了对比。如果您有500 1GB的空闲内存,并且对旋转磁盘上的文件进行了1GB的打开写-关闭,内核将为您做一些事情:

  • 内核将为您缓冲这些写操作。
  • 如果您的文件系统正在日志记录(例如,今天使用的大多数文件系统,如ext4、xfs、btrfs、zfs),它将首先缓冲相应的日志写入。
  • 内核将根据配置的i/o调度程序,在适当的i/o空闲期或截止日期期间(按适当的顺序)刷新其缓冲区。
  • 即使在这样的空闲发生之前创建、编写和删除了文件,内核最终也会更新包围目录的修改时间。

tmpfs只在整个系统内存使用率足够高以至于应用程序(以及其他进程)使用足够的内存而需要切换到磁盘时才会接触磁盘。像任何其他应用程序的内存一样,tmpfs块被分页并写入交换。如果已禁用交换,那么内核将开始终止进程以释放内存。但否则,任何东西都不会触及磁盘。没有日志,没有创建/访问/修改时间戳,没有用户权限,什么都没有。当您使用tmpfs时,您说的是“将这些文件与其他所有内容一起保存在内存中,并将它们视为与主存一样的可遗忘的”。

tmpfs在发布时是绝对令人惊讶的,它几乎取代了Solaris/Linux中执行"ram disks“的所有其他方法(我不记得它是在哪里移植的)。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/512134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档