有人问,像 ZimaBlade 这样的小盒子真能跑家庭实验室吗?我这台就在跑——16 个容器,压在一颗 2016 年的双核赛扬 N3350 上。所以我干脆把每个容器实际吃多少资源都量了一遍。
先交代这台机器的底子:2 个核心(1.1 GHz,可睿频到 2.4 GHz),16 GB 内存,两块 6 TB 的 IronWolf 硬盘走 SATA。取样时它已经连续运行 17 天,Docker 没有重启过任何一个容器。
内存:Immich 占了大头
16 个容器加起来,占用略低于 3 GB。其中 Immich 那一套(server、Postgres、机器学习、Redis)就占了约 2.2 GB,差不多是四分之三:
- immich-server:1.34 GB
- immich-postgres:602 MB
- immich-machine-learning:239 MB
- uptime-kuma:183 MB
- npmplus(反向代理):137 MB
- homepage:112 MB
其余的都是小角色。所有登录都要经过的 Authelia 只有 32 MB,Cloudflare 隧道 29 MB,CrowdSec 57 MB。
系统显示整体"已用"5.4 GB,但仍有 10.5 GB 可用,因为剩下的部分是文件缓存,需要时会交还出来。另外还有约 1 GB 待在 swap 里。
CPU:基本在摸鱼
相隔 20 秒取两次快照,几乎所有容器 CPU 都低于 1%。最忙的是 Uptime Kuma(先 4% 后 1%)和 immich-server(先不到 1%,后接近 3%)。当天早些时候,2 核上的负载均值在 0.9 左右,大约一半忙碌,温度稳定在 41-44 °C。
所以对于那种常开、大部分时间在等请求的服务,两颗老核心够用。
2 核在哪儿会疼
这一点出乎我的意料。就在取样过程中,1 分钟负载从约 0.9 跳到 3.4,内核的 CPU 压力指标显示,最近 10 秒里约有 75% 的时间有任务卡在等 CPU。docker stats 本身也不是免费的,我不能保证当时没有别的东西同时启动。但它把形状画出来了:只有 2 核时,任何突发都会排在所有东西后面。
空闲服务很便宜。突发型工作才是这颗 CPU 撑不住的地方——机器学习索引、视频转码,或者有人一口气上传 300 张照片。我的 Immich 机器学习跑在 CPU 上(P600 太老,跑不了 Immich 的 GPU 版本),这些活就全落在这同样的 2 核上。
另一个瓶颈是磁盘,不是 CPU
快存储是一块 17 GB 的 eMMC 分区,现在已用 72%,主要是一个 5.2 GB 的 swap 文件和 3 GB 的系统更新文件。Docker 镜像(12.5 GB,其中 5.4 GB 是旧镜像,可以清理)放在大阵列上,那块只用了 36%。所以我盯的不是 CPU 也不是内存,是那块小小的 eMMC。
挑硬件时这意味着什么
以下来自我的实测数字,不是跑分:
- 内存是最该留足的一项。16 GB 意味着 Immich 可以贪吃,别的服务毫无感觉。
- CPU 对空闲型服务够用,对突发不够,所以重活要么别放上来,要么排好时间。
- 真正的 SATA 对我比 CPU 速度更重要。照片住在正经硬盘上,不是 USB 上。
- 纸面上我预计树莓派 5 会打赢这颗 CPU,但我还没跑过基准测试。那是下一篇的事,等拿到真实数字,连价格和功耗一起写。
你的家庭实验室选树莓派还是迷你主机?你机器上最吃内存的是哪个?
热门跟贴