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

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
量子位
Y
Y Combinator Blog
IT之家
IT之家
博客园 - 聂微东
L
LangChain Blog
爱范儿
爱范儿
H
Help Net Security
GbyAI
GbyAI
F
Fortinet All Blogs
B
Blog
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
C
Check Point Blog
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
D
DataBreaches.Net
Last Week in AI
Last Week in AI
WordPress大学
WordPress大学
B
Blog RSS Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
宝玉的分享
宝玉的分享

陈陈菌博客

如何在 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)
有关 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 海量镜像生态,复用性强,非常多的工具,使用无需提权。

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