三 文章首页 实时留言 网络邻居 开往 虫洞
返回

有关 docker、podman、nspawn、bwrap 的 Linux 容器图形性能测试

主流 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 海量镜像生态,复用性强,非常多的工具,使用无需提权。

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