type
Post
status
Published
date
Apr 3, 2025
slug
2025/04/03/Limiting-the-memory-and-other-resources-used-by-Firefox-with-systemd-run
summary
tags
Arch
Linux
category
Linux
created days
new update day
icon
password
Created_time
Apr 3, 2025 02:56 AM
Last edited time
Apr 3, 2025 03:25 AM
缘起
前一段时间我在使用 Firefox 的时候发现 Firefox 不会像 edge 浏览器那样当页面不活动的时候将对应的页面进行休眠,从而降低浏览器的内存使用状态。后面通过搜索了解到了实际上 Firefox 已经实现了对应的功能,可以通过 about:unloads 查看对应的页面状态。

经过询问发现 Firefox 好像是在 low-memory 的时候才会触发对应的行为。所以这也是为什么我原来页面过多的时候导致 Firefox 使用完了所有的内存,导致整个桌面环境都非常卡顿导致无法正常使用。
sysemd-run
后面通过 Arch Linux cn 群里面的大佬们推荐使用 sysemd-run 来限制 Firefox 所能使用的资源数量。
因为我是在普通用户中来使用 Firefox ,所以对应的 systemd-run 命令参数如下:
systemd-run --scope --user -p MemoryLimit=8G /usr/lib/firefox/firefox
你可以根据自己的需求来设置对应的内存限制。你可以通过在终端中执行这个命令来验证是否能够正常使用。具体的行为的话,应该是Firefox正常启动并显示界面啦。
修改 Desktop 文件持久化配置
好了,通过在终端中的命令验证,我们已经确认上面所配置的命令可以正常使用了,那么我们应该怎么样将这个修改进行持久化呢?我们总不能再想使用 Firefox 浏览器的时候,每次都在终端中执行命令吧,那也太不优雅了。
如果你使用的是 kde 桌面环境的话,你可以在开始菜单中通过右键 Firefox 图标来修改对应的 Firefox 启动命令。

将对应的 systemd-run 和对应的参数填入对应的位置,这中修改程序的原理是新建一个放置在用户目录中的 Desktop 文件,因为用户目录中的 Desktop 优先级更高,所以能够覆盖默认的行为。

可以通过查看
~/.local/share/applications/firefox.desktop
文件,看到对应的修改所体现的部位在 Exec
部分,你也可以通过修改这个文件来实现对 Firefox 所使用的资源的限制,比如添加CPU限制等,也可以补充其它的 Exec
部分来限制其它行为的资源。点击查看完整的 ~/.local/share/applications/firefox.desktop
cat ~/.local/share/applications/firefox.desktop [Desktop Action new-private-window] Exec=/usr/lib/firefox/firefox --private-window %u Name[zh_CN]=新建隐私窗口 Name=New Private Window [Desktop Action new-window] Exec=/usr/lib/firefox/firefox --new-window %u Name[zh_CN]=新建窗口 Name=New Window [Desktop Action open-profile-manager] Exec=/usr/lib/firefox/firefox --ProfileManager Name[zh_CN]=打开配置文件管理器 Name=Open Profile Manager [Desktop Entry] Actions=new-window;new-private-window;open-profile-manager; Categories=GNOME;GTK;Network;WebBrowser; Comment=浏览万维网 DBusActivatable=false Exec=systemd-run --scope --user -p MemoryLimit=8G /usr/lib/firefox/firefox %u GenericName[zh_CN]=Web 浏览器 GenericName=Web Browser Icon=firefox Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer; Keywords=Internet;WWW;Browser;Web;Explorer; MimeType=application/json;application/pdf;application/rdf+xml;application/rss+xml;application/x-xpinstall;application/xhtml+xml;application/xml;audio/flac;audio/ogg;audio/webm;image/avif;image/gif;image/jpeg;image/png;image/svg+xml;image/webp;text/html;text/xml;video/ogg;video/webm;x-scheme-handler/chrome;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/mailto; Name[zh_CN]=Firefox Name=Firefox NoDisplay=false Path= StartupNotify=true StartupWMClass=firefox Terminal=false TerminalOptions= Type=Application Version=1.0 X-GNOME-FullName[zh_CN]=Firefox 浏览器 X-GNOME-FullName=Firefox Web Browser X-KDE-SubstituteUID=false X-KDE-Username= X-MultipleArgs=false
参考资料
欢迎加入“喵星计算机技术研究院”,原创技术文章第一时间推送。

- 作者:tangcuyu
- 链接:https://expoli.tech/articles/2025/04/03/Limiting-the-memory-and-other-resources-used-by-Firefox-with-systemd-run
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章