当前位置:首页>Linux>把浏览器缓存放进内存:Linux 下减少 SSD 写入的一种简单方法

把浏览器缓存放进内存:Linux 下减少 SSD 写入的一种简单方法

  • 2026-09-06 17:14:55
把浏览器缓存放进内存:Linux 下减少 SSD 写入的一种简单方法

如果经常用浏览器看视频,并定期查看磁盘的S.M.A.R.T信息可能会明显注意到SSD 的写入量增加很快。

使用 iotop、GNOME System Monitor 之类工具,能看到浏览器进程不断产生磁盘 I/O。浏览器为了提高网页加载速度,会在本地保存大量缓存。图片、脚本、网页资源,以及视频播放过程中下载的数据,都可能进入缓存系统。

因为AI基建热潮SSD的价格水涨船高,而SSD的写入量和使用寿命直接相关,所以有必要考虑减少对SSD不必要的消耗,如果电脑内存比较充足,那么可以考虑把浏览器缓存放到内存文件系统里。


Linux 下可以直接利用 $XDG_RUNTIME_DIR

Linux 桌面环境通常会提供变量:

echo $XDG_RUNTIME_DIR

很多系统上会得到:

/run/user/1000

这个目录属于当前用户的运行时目录,通常使用 tmpfs,也就是说数据主要存放在内存中。

可以检查一下:

df -h $XDG_RUNTIME_DIR

如果看到文件系统类型是 tmpfs,那么就可以把一些适合临时保存的数据放到这里。


为什么不用/tmp

  • /tmp/ 是全局共享的:Linux 系统中的 /tmp/ 目录默认对系统里的所有用户和所有程序开放读写权限。如果你把浏览器的缓存放在 /tmp/chromium-cache,这意味着其他登录这台电脑的用户,或者系统里运行的其他低权限脚本,都有可能读取到你浏览器缓存里的图片、网页片段和敏感脚本。
  • /run/user/1000/ 是私密的:这个目录的底层权限是 0700(即 rwx------)。只有你本人(UID 1000)和 root 能够访问。把缓存放在这里,能保证你的上网隐私不会泄露给系统内的其他进程。

Chromium / Chrome:把磁盘缓存指定到内存目录

Chromium 系浏览器支持选项:

--disk-cache-dir

可以用它指定磁盘缓存目录。

例如:

--disk-cache-dir=/run/user/1000/chromium-cache

同时可以限定缓存的大小,防止内存被占用过多:

--disk-cache-size=1073741824

这个选项使用的单位是字节,1073741824 就是 1 GiB。

于是可以得到类似:

--disk-cache-dir=/run/user/1000/chromium-cache --disk-cache-size=1073741824

这样,Chromium 的缓存就会被放到 /run/user/1000/chromium-cache。


Flatpak 版 Chromium 稍微麻烦一点

如果你使用的是 Flatpak 版 Chromium,沙盒默认并不能随意访问宿主机的 /run/user/1000。

可以给它增加对应的运行时目录权限。

例如:

flatpak override --user org.chromium.Chromium \    --filesystem=xdg-run/chromium-cache:create

然后让 Chromium 使用:

/run/user/1000/chromium-cache

作为缓存目录。

这里有一个容易搞混的地方:

xdg-run/chromium-cache 是 Flatpak 的路径表达方式,对应当前用户的 $XDG_RUNTIME_DIR/chromium-cache。

它不是在磁盘上创建一个叫“xdg-run”的普通目录。


怎么修改 Chromium 的启动参数?

如果你希望从图形菜单启动 Chromium 时也自动使用这个参数,可以在用户自己的 .desktop 文件里修改。

先创建目录:

mkdir -p ~/.local/share/applications

然后把系统提供的 desktop 文件复制过去。

通过系统包管理器安装的chromium:

cp /usr/share/applications/org.chromium.Chromium.desktop \   ~/.local/share/applications/

通过flatpak安装的chromium:

cp /var/lib/flatpak/exports/share/applications/org.chromium.Chromium.desktop \   ~/.local/share/applications/

然后再编辑:

~/.local/share/applications/org.chromium.Chromium.desktop

找到:

Exec=

对应的启动命令,如果是flatpak版只须在 Chromium 参数后加入:

--disk-cache-dir=/run/user/1000/chromium-cache--disk-cache-size=1073741824

因为当执行:

flatpak run org.chromium.Chromium
Flatpak 在真正启动 Chromium 进程之前,会先根据应用的权限配置
准备沙盒运行环境。其中就包括处理类似:
xdg-run/chromium-cache:create
这样的 filesystem 权限。如果目录不存在,flatpak会自动创建。

而通过系统包管理器安装的chromium则需要在.desktop中自行增加创建目录的语句:

Exec=sh -c 'mkdir -p "/run/user/1000/chromium-cache"; exec /usr/bin/chromium --disk-cache-dir="/run/user/1000/chromium-cache" "$@"' sh %U

另外,如果系统用户 UID 不是 1000,也不要直接写死 /run/user/1000。

更稳妥的思路是先确认一下:

echo $XDG_RUNTIME_DIR

然后使用实际的运行时目录。


Firefox:设置起来更直接

Firefox 本身就提供了比较完善的缓存设置。

在地址栏输入:

about:config

搜索:

browser.cache.disk.enable

将它设置为:

false

这样可以关闭磁盘缓存。

同时确认:

browser.cache.memory.enable

保持为:

true

Firefox 就会更多地使用内存缓存。

另外还有:

browser.cache.memory.capacity

如果它是:

-1

通常意味着让 Firefox 根据环境自动决定内存缓存大小。

对于大多数用户来说,保持默认值反而是比较省心的选择,没必要为了把缓存全部塞进内存而手动设置一个很大的数字。


Windows 也可以把浏览器缓存放进内存吗?

可以吧,那具体怎么操作呢?完全没兴趣知道。


有必要这样做吗?

如果 SSD 每天只有几十 GB 的写入,其实没必要因为看到浏览器缓存写盘就紧张。现代 SSD 的耐久度通常相当不错,正常桌面使用很难仅仅因为“看视频”把 SSD 用坏。而且浏览器缓存并不是唯一的写入来源。

Linux 桌面系统中还有:

  • journald 日志
  • 浏览器配置和数据库
  • 缩略图缓存
  • 软件更新
  • Flatpak
  • dnf
  • 各种应用自己的缓存
  • swap
  • 数据库文件

等等。

所以,把浏览器缓存放进内存,更多是一种针对临时数据的优化,不是 SSD 寿命的“急救措施”,只能延长一些SSD的使用寿命。


缓存放到 $XDG_RUNTIME_DIR 后,电脑重启,缓存就没了,所以代价也很明显,之前缓存过的网页资源每次都需要重新下载。

所以这并不是单纯的“有利无害”。

如果你的网络速度很快、内存比较充足,而且本身就比较在意 SSD 写入,那么这个方案很适合尝试。

如果电脑内存比较紧张,或者经常访问同样的网站,希望充分利用浏览器已有缓存,那么保持默认设置可能反而更合理。

最新文章

随机文章