Why mount a very small tmpfs on /tmp in /etc/preinit

本文介绍了一个使用awk命令根据/proc/meminfo中的MemTotal值来动态调整tmpfs挂载点大小的方法。当总内存介于5MB到10MB之间时,会从总内存中减去固定值来设置tmpfs的大小。

line 24 in /etc/preinit:
size=$(awk '/MemTotal:/ {l=5242880;mt=($2*1024);print((s=mt/2)l)?mt-l:s}' /proc/meminfo)

if the 'mt' is more then 5MB and less then 10MB, the 'size' = 'mt-5242880'. if the formula above is established , the 'size' will be very small in the case when 'mt' = 5.1M.

I did a test, and got the result as below:


$mount
...
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime,size=8k) #here,very small
...


Is it a bug? can anyone pls give me some advices?

你执行的命令是: ```bash mount | grep tmp ``` 其目的是查看当前系统中挂载的、名字中包含 `tmp` 的文件系统。你的输出如下: ``` tmpfs on /dev/shm type tmpfs (rw,relatime,mode=0777) tmpfs on /var/tmp type tmpfs (rw,relatime) ``` --- ### 🔍 输出含义详解 每一行代表一个挂载点,格式如下: ``` <设备名/文件系统> on <挂载点> type <文件系统类型> (<挂载选项>) ``` #### 第一行: ```bash tmpfs on /dev/shm type tmpfs (rw,relatime,mode=0777) ``` - **`tmpfs`**:这是一个基于内存的虚拟文件系统,数据存储在内存(RAM)中,而不是磁盘上。 - **`/dev/shm`**:这是共享内存的挂载点,通常用于进程间通信(IPC)。 - **`mode=0777`**:表示该文件系统的默认权限是所有用户(所有者、组、其他)都可以读、写、执行。 - **`rw`**:表示挂载为可读写。 - **`relatime`**:文件访问时间(atime)只在文件修改时间(mtime)或状态改变时间(ctime)变化时才更新,以减少磁盘 I/O。 #### 第二行: ```bash tmpfs on /var/tmp type tmpfs (rw,relatime) ``` - **`/var/tmp`**:这是系统临时文件目录,通常用于存储应用程序运行时生成的临时文件。 - 它也被挂载为 `tmpfs`,意味着这些临时文件也存储在内存中。 - 与 `/dev/shm` 不同的是,`/var/tmp` 中的文件通常在系统重启后保留(但如果你使用的是 `tmpfs`,重启后会丢失,除非你做了持久化配置)。 --- ### 🧠 tmpfs 是什么? `tmpfs` 是一个临时文件系统,其内容存储在内存(RAM)或交换空间(swap)中,而不是磁盘上。它的特点包括: - 非常快(因为是内存访问) - 系统重启后内容会丢失 - 可以限制大小(例如通过 `size=2G` 选项) --- ### ✅ 为什么这些挂载是必要的? | 挂载点 | 用途说明 | |--------------|-----------| | `/dev/shm` | 用于进程间共享内存通信,很多程序(如浏览器、数据库)会用到它 | | `/var/tmp` | 用于存放临时文件,tmpfs 可以提升性能,但要注意重启后会丢失数据 | --- ### ⚠️ 注意事项: 1. **内存占用**:tmpfs 占用的是系统内存,所以如果 `/var/tmp` 或 `/dev/shm` 使用过多,可能会影响系统性能。 2. **持久性**:tmpfs 是易失性存储,重启后数据会丢失。如果你需要持久化临时文件,应使用磁盘挂载。 3. **大小限制**:可以通过挂载选项设置最大大小,例如: ```bash mount -t tmpfs -o size=512M tmpfs /var/tmp ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值