惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Vulnerabilities – Threatpost
V
V2EX
GbyAI
GbyAI
Recent Announcements
Recent Announcements
Microsoft Security Blog
Microsoft Security Blog
阮一峰的网络日志
阮一峰的网络日志
Hugging Face - Blog
Hugging Face - Blog
T
Tailwind CSS Blog
Y
Y Combinator Blog
C
Check Point Blog
爱范儿
爱范儿
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
美团技术团队
雷峰网
雷峰网
IT之家
IT之家
WordPress大学
WordPress大学
V
Visual Studio Blog
Microsoft Azure Blog
Microsoft Azure Blog
MyScale Blog
MyScale Blog
N
News and Events Feed by Topic
罗磊的独立博客
S
SegmentFault 最新的问题
S
Security Affairs
aimingoo的专栏
aimingoo的专栏
F
Fortinet All Blogs
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
H
Hacker News: Front Page
Google DeepMind News
Google DeepMind News
B
Blog
O
OpenAI News
C
Cisco Blogs
Simon Willison's Weblog
Simon Willison's Weblog
The Last Watchdog
The Last Watchdog
Hacker News: Ask HN
Hacker News: Ask HN
博客园_首页
人人都是产品经理
人人都是产品经理
C
Cybersecurity and Infrastructure Security Agency CISA
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Help Net Security
Help Net Security
月光博客
月光博客
J
Java Code Geeks
L
LangChain Blog
博客园 - 司徒正美
Stack Overflow Blog
Stack Overflow Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
Apple Machine Learning Research
Apple Machine Learning Research
T
The Exploit Database - CXSecurity.com
N
News and Events Feed by Topic
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

陈陈菌博客

如何在 podman 容器内使用 systemd 在 podman 运行 GUI 应用的经验总结 管理 podman 容器与镜像的导入或导出 用 xdg-dbus-proxy 解决容器的文件选择器的问题 解决 VSCodium 或 Code-Server 无法安装 GitHub Copilot 问题 不可变发行版 Fedora Silverblue 的体验记录 解决 apt 或 dnf 无法 tab 补全的问题 对 (MPA) 多页面切换实现丝滑动画的探索 让服务在非 Root 权限下使用 80 或 443 端口 AppImage 应用打包快速上手 Flatpak 使用和应用打包快速上手 如何用 webSocket 实现一个实时聊天应用 Linux 内核编译 | 快速上手 | deb 使用 debootstrap 构建 Debian 系根文件系统 高度可定制的 KDE 窗口装饰器 klassy 创建任意 Linux 容器并支持 GUI 程序 (Docker) 创建任意 Linux 容器并支持 GUI 程序 (nspawn) 文件同步工具 rsync 的使用 玲珑 (Linyaps) 应用打包 RPM 打包指南 | 精简版 PBR 材质的各种贴图类型入门 APU | Stable-Diffusion 使用记录 如何在 Electron 上启用 WebGPU Grub 主题安装与配置 Fcitx5 主题安装与自定义 不使用 Nginx 的网站开发指南 如何自制一个简易的资源监控程序 SQL 常用 CRUD 语法记录 Debian 打包入门,与需要注意的问题 在 fedora 建立一个 Arch 容器 (bwrap) 在 fedora 上建立一个 debian 容器 (bwrap) i3wm | 自制一个极简的屏幕亮度调节器 在 Linux 下启用内存压缩技术 zram 搭建一个本地轻量级聊天 Ai 我又又又重新上线了博客 如何通过命令行管理 wine 容器 (包括 proton) Btrfs 文件系统创建 swap 文件的方法 如何创建适用于 Linux 桌面的程序启动文件 在 Linux 控制 intel CPU 调度的方法 Arch Linux 的基本安装
有关 docker、podman、nspawn、bwrap 的 Linux 容器图形性能测试
GlumiStudio@ · 2025-08-26 · via 陈陈菌博客

主流 vs 冷门容器方案,谁更适合作为 Linux 发行版 GUI 应用容器?

2025-08-26 09:37:52

分类: Linux 标签: 容器


我的硬件是 AMD Ai9H365(880m) GPU 水平大概在 1650 左右,最近在尝试四种不同的容器方案发现了一点有趣的,在测试了对于运行 firefox 时 webGL 的运行性能 鱼群测试

在驱动正常,且均挂载 /dev/dri/tmp/.X11-unix 情况下,把鱼群拉到 30000,同样分辨率下(2560x1600),canvas 宽高为 1024,持续运行了 10 分钟。

以本机测试 61 fps 为基准,bwrap 几乎为本机帧数,nspawn 会少个几 fps 左右,docker 和 podman 则比本机低了 20 fps 左右,如果忽略误差的几个 fps

从 webGL 画面帧数上看 bwrap ≈ 本机 > nspawn > docker ≈ podman

以及从 sysfs 读取 cgroup 得到的内存占用:

容器帧数内存使用 (含容器自身)
bwrap61fps(几乎是原生运行,故不加入比较)
nspawn54fps539MB~543MB
docker41fps744MB
podman40fps779MB~780MB

不知道为什么感觉 docker 和 podman 对于 firefox webGL 的利用不是很好,并且内存都比 nspawn 占用更多。

接下来是 blender Benchmark 测试:

不过在 blender 基准测试中,似乎这几个容器分数都非常接近,这就很有意思了 👀 也许 firefox 测试中可能存在其他因素导致误差?

容器monsterjunkshopclassroom
bwrap140.62096894.06226872.178226
nspawn139.50575494.64407972.159326
docker139.17210294.89101971.771857
podman139.60.687694.03077071.773574

如果从另一个角度看,docker / podman 也许会有一点点性能损失,但拥有海量镜像资源和管理工具,这是他们的优势。而 nspawn / bwrap 这类容器则相对轻量化并且冷启动非常快且内存占用低,但工具数量和镜像生态不如前者,好像还真不好说哪种更好,只是场景合适与否。

容器主要特点量级程度便利性
bwrap需要自行准备基础镜像,无特权 (root) 沙箱隔离,使用灵活可定制程度高,但是工具匮乏。
systemd-nspawn需要自行准备基础镜像,拥有不错的 systemd 支持,支持跨架构,相比 bwrap 拥有更多管理工具还行
docker开箱即用,docker hub 拥有海量镜像生态,复用性强,非常多的工具,使用需要提权 (sudo)。
podman开箱即用,兼容 docker 海量镜像生态,复用性强,非常多的工具,使用无需提权。

有关这些容器的使用和配置参数,可以了解往期相关文章: