安装未启用 tmpfs RAM 磁盘的 Ubuntu 20.04 服务器

安装未启用 tmpfs RAM 磁盘的 Ubuntu 20.04 服务器

语境 我刚刚使用默认安装设置安装了一些带有 Ubuntu Server 20.04 的小型虚拟机。我运行的应用程序已经警告我可用磁盘空间有限,这很奇怪,因为我在 18.04 上运行相同的应用程序,虚拟机磁盘大小与以前相同。

我运行了 df -H 并发现了一些类型的分区临时文件我以前从未见过。经过一番研究,我发现它们是 ramdisk 分区。

RAM 磁盘功能很好,但是我的应用程序已经在缓存其数据,因此对于我的用例来说,这个功能基本上没用。

解决方法: 我目前的解决方法很简单:我不会尝试删除 RAM 磁盘分区,以免让正在运行的系统面临风险,因为这可能会造成系统故障。我已经为主机订购了更大的硬盘,然后只需克隆磁盘并调整一些虚拟机和分区的大小即可。

问题 我的问题是:如果我想安装另一台 Ubuntu 服务器,如何从一开始就禁用此 ramdisk 功能?

答案1

tmpfs您在输出中看到的结果是df -h“一种 RAM 磁盘”,这在某种程度上是正确的,但这些位置远不止表面上看到的那么简单。请允许我解释一下为什么它们是否存在以及是否可以被删除。

systemd这些位置实际上都是 API 文件系统,对于基于的系统的操作至关重要。systemd在系统初始化期间,在执行任何其他操作之前,先挂载这些位置。

让我们逐一看一下它们,以及它们存在的原因:

/dev/shm

这几乎只存在于基于 Debian 的操作系统上。/dev/shm实际上存在/run/shm于 Fedora 和 SuSE 等其他发行版上。它的tmpfs特定目的是在您的操作系统上实现 POSIX 共享内存。删除它将导致使用 POSIX 共享内存的应用程序失败。

这将是一件坏事。

/sys/fs/cgroup

这是systemd其他守护进程装载操作系统上可用的各种控制组层次结构的地方。删除它将停止操作系统中依赖于控制组的部分工作。

这也是一件坏事。

/tmp

顾名思义,这是应用程序希望放置短期临时文件的地方。删除它将使相当多使用临时文件的工具崩溃。

这当然是一件坏事。

/run

这曾经是/var/run放置特殊类型的临时文件的地方,这些文件可能会持续到下一次系统引导。/var/run您将在其中找到PID文件、systemd非持久性日志、UNIX 域套接字、FIFO 和其他类似的东西。删除它将使日志systemd以存储设备记录错误日志的速度增长;破坏绝大多数至今仍在使用PID文件的守护进程;并破坏“多座席”udev系统systemd以及一大堆其他子系统。

除非您想看看操作系统如何不雅地失败,否则不要这样做。

/dev

通常,Linux 上字符设备和块设备的所有设备文件都存储在此。许多程序和子系统都希望使用诸如/dev/tty/dev/null/dev/zero/dev/console/dev/fd/0/dev/sda等常规名称。删除它将破坏系统的很多部分,以至于它实际上将变得毫无用处。这是一个devtmpfs而不是tmpfs,区别在于前者由内核本身自动填充和取消填充设备文件条目,因为设备是在内核中加载/启用和禁用/卸载的。

虽然这些位置确实会消耗额外的内存,但系统通常足够聪明,知道什么时候这些应该存在于 RAM 中,什么时候可以将它们移到交换区。除非你运行的系统总内存小于 768MB(RAM 加上所有交换文件和 —可选地— 分区),你应该没问题。

我希望这回答了你的问题。

相关内容