我正在迁移以前在 Ubuntu 12.04 LTS 上运行的 Web 应用程序。它广泛使用/dev/shm/
. 我发现/dev/shm/
Ubuntu 16.04 LTS 服务器上的应用程序数据正在消失。
是否有某种垃圾收集从那里删除文件和目录?我看到 12.04 配置了这个符号链接: /dev/shm -> /run/shm
,而 16.04 正好相反:/run/shm -> /dev/shm
。不过,我看不出这会有什么不同。
更新
我对使用 tmpfs 的 /tmp 是否尊重size
我在以下文件中提供给它的参数感到困惑/etc/fstab
:
我的 fstab 条目现在显示为:
\nroot_pool/var/tmp /tmp /var/tmp zfs rw,nodev,nosuid 0 0\ntmpfs /tmp tmpfs rw,nodev,nosuid,noexec,nr_inodes=5k,size=2G,mode=1777 0 0\ntmpfs /dev/shm tmpfs defaults,nodev,nosuid,nr_inodes=5k,mode=700,size=4G 0 0\n\n
Run Code Online (Sandbox Code Playgroud)\n但根据 du 的说法,它使用了我的一半内存(我理解这是默认值),而不是我打算分配给它的大小。
\n ~ df /tmp\nFilesystem 1K-blocks Used Available Use% Mounted on\ntmpfs 65921428 0 65921428 0% /tmp\n
Run Code Online (Sandbox Code Playgroud)\n那么该size
参数根本没有任何作用吗?\n我正在使用 Ubuntu 20.04
编辑我可以手动安装它
\nsudo mount -oremount,size=4G /tmp\n
Run Code Online (Sandbox Code Playgroud)\n当我这样做时,/tmp
预期是 20.04 GB。
编辑:系统状态:
\n\xe2\x97\x8f tmp.mount - Temporary Directory (/tmp)\n Loaded: loaded …
Run Code Online (Sandbox Code Playgroud) 在 Ubuntu 12.04 上按照Oracle 11gR2 Express Edition on Linux Ubuntu 11.10 howto安装 Oracle 11gR2 Express Edition 时遇到了 Oracle 内存目标问题/dev/shm
(如该指南的第 7 节所述),因为/dev/shm
现在默认作为符号实现链接如 Ubuntu 11.10 发行说明中所述,从/dev/shm
到/run/shm
. 符号链接与 Oracle 期望的不兼容,这会导致数据库启动时出现 Oracle 错误 (ORA-00845: MEMORY_TARGET)。
对的“的Oracle 11gR2的Express版本的Linux操作系统Ubuntu 11.10 HOWTO”文件第7节)启动脚本/etc/init.d/oracle-shm
,是为了配置/dev/shm
使用Ubuntu的/run/shm
,但是这并没有出现有在Ubuntu 12.04的预期效果和/dev/shm
未安装按预期-想必它确实在 11.10 上工作。尽管已经注意到这一点并提出了各种解决方案,但我选择以稍微不同的方式解决该问题,方法是添加一个条目/etc/fstab
并修改/etc/init.d/oracle-shm
脚本,如下所示:
为共享内存临时文件系统添加一个条目/etc/fstab
,例如(对于 2 GB 的文件)
shm /dev/shm tmpfs size=2g 0 0 …
Run Code Online (Sandbox Code Playgroud)