我有当前的场景:
16GB 或内存。大多数情况下,大约有 10~12GB 未使用
几乎从不安装/删除软件,这是一个成熟的系统
每周只重启一次,所以(重新)启动时间无关紧要
/usr 大约 8GB
HDD 很慢,在不久的将来没有预算来改变它
安装/tmp如tmpfs在fstab没有奇迹般的表现
我刚刚有了一个疯狂的想法:
是否有可能以某种方式使用我的 RAM 来“存储” /usr?
也就是说,在启动时,它/usr从 HDD读取当前内容并将其复制到 atmpfs并将其挂载为/usr?
如果可能,关闭时是否还将(可能已更新)内容刷新回 HDD?或者也许让我在最终需要安装/删除新软件或更新时轻松“暂时切换回 HDD”?
欢迎任何方法,即用型命令将受到高度重视。
谢谢!
这是可能的,但毫无意义。内核将磁盘中的数据缓存保存在 RAM 中。您最近使用的数据保存在 RAM 中。您自然/usr会在 RAM 中使用您经常使用的部分,而您不使用的部分将不会占用任何 RAM。
如果您希望在启动应用程序时有更好的反应时间,可以为缓存设定种子。文件在您第一次使用时被加载到内存中,并保持在那里,直到内存被重用于其他用途。您可以强制加载文件:
cat /path/to/file >/dev/null
Run Code Online (Sandbox Code Playgroud)
例如,要将所有可执行文件和库预加载到 RAM 中:
cat /bin/* /lib/* /usr/bin/* /usr/lib/* >/dev/null
Run Code Online (Sandbox Code Playgroud)
这可能需要一段时间才能完成,因此您应该在后台执行此操作。您可以将以下命令放入/etc/rc.local:
ionice -c 3 cat /bin/* /lib/* /usr/bin/* /usr/lib/* >/dev/null &
Run Code Online (Sandbox Code Playgroud)
还加载/usr/lib*它的子目录中的所有库可能很有用运行find:
ionice -c 3 find /bin /usr/bin /usr/lib* -type f -exec ionice -c 3 cat '{}' ';' > /dev/null &
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2131 次 |
| 最近记录: |