由于闪存退化问题,我希望尽可能减少无头轻型 24/7 系统上不必要的磁盘写入量。如果重要的话,这是一个 Debian 风格的系统,但我认为这个问题可能与更广泛的受众相关。
为了实现这一目标,我已经在使用临时文件系统对于默认值/tmp
以及/var/log
除了默认值之外。此时,通过使用各种工具监控空闲 IO 活动,例如法特拉斯,我发现经过很长一段时间后,写访问次数最突出的目录之一是/var/cache
,特别/var/cache/man
是与人数据库。请注意,我在此系统中没有自动软件包更新,因此我没有收到任何写入/var/cache/apt
,但也收到其他可能相关的写入。
问题是,如果临时文件系统将用于/var/cache
?启动时,我会用磁盘中的数据填充它,并且可能同步它时不时地回来。
当然,在某些系统上,RAM 使用率升高可能是一个问题,但听听您的意见会很有趣,对于某些使用缓存的常见系统来说,在早期启动过程中缺少数据,或者一般情况下,这是否会出现问题处于稍微过时的状态(例如在崩溃之后)?
答案1
很酷的主意。由于这个原因,我安装/var
在磁力驱动器上,但我喜欢这个。这是否有效取决于应用程序。
apt
require是否/var/cache/apt/
存在或者会在需要时创建目录吗? dpkg -S /var/cache/apt/
告诉我这个目录是在软件包安装过程中创建的。那么如果该目录不存在,会apt
创建它吗?会apt
开始失败吗?这些问题的答案就在于apt
。您可以通过创建tmpfs
for来使这一点无效/var/cache/apt
。
虽然tmpfs
for/var/cache/apt
可能适用于apt
,但您必须对使用 的所有其他包重复该过程/var/cache/*
。我的机器上的一些目录是:apache2
, fonts
, gdm
, cups
, man
, dictionaries-common
app-info
。此外,每当您安装新软件包时,您还需要记住设置tmpfs
适用于该软件包的任何内容。这可能很难管理。
幸运的是,文件系统层次结构标准描述/var/cache
为:
应用程序缓存数据。此类数据是由于耗时的 I/O 或计算而在本地生成的。应用程序必须能够重新生成或恢复数据。可以删除缓存的文件而不会丢失数据。
所以我可能是错的。应用程序可以通过在需要时创建子目录的方式来实现,/var/cache
因为标准要求它们这样做。但如果有人不遵守这一点,这仍然是一个风险。