“容器性能损耗多少”缺少测量对象和实验条件。应用计算、内存申请、文件系统 copy-up、网络封装都在不同路径上。34只评估启动,不把 steady-state 性能一起平均。本篇先设定可以证伪的对照,再决定哪些数字能归因于容器边界。

逐项只改变一个条件

同一内核、架构、节点、二进制和输入,先在普通进程跑 bounded_load 的有界计算/内存路径,再在专用容器内跑同样命令;分别记录用户态时间、CPU/内存控制器、可运行 CPU 集与真实的 cgroup 限制。文件系统实验区分宿主相同盘的普通写入、容器可写层首次写入与同一镜像的重复写入;网络实验区分 loopback、veth、bridge 与跨主机封装,应用请求也要用相同连接/大小分布。每组预设预热、次数、并发、成功与失败计数,报告吞吐与分位数及原始数据,不可只挑最快一轮。

失败或反例是把一个组放在远端存储、另一个组放在本地盘,却将延迟差归因于 OverlayFS;或让一组命中页缓存、另一组做冷读取,还声称 cgroup 导致 I/O 变慢。必须逐项记录存储设备、缓存条件、CPU 亲和性、流量路径、镜像 digest 和安全策略,结果可解释时才写局部结论。实验矩阵与相同负载给出可复跑入口。本环境无运行时、独立双 VM,容器/普通进程对照 NOT_RUN,没有可报告的吞吐、分位数或“通用百分比”。

现象 控制变量 边界
CPU 差异大 cgroup 限额、cpuset/邻居 不归因于 namespace 本身
首次文件写慢 copy-up 与缓存状态 不推广到所有 snapshotter
网络 p99 高 路由、封装及失败数 不以平均值覆盖失败

练习

  1. 先预测在完全相同 CPU limit 下,普通进程与容器的有界负载耗时应怎样;锁定 cpuset 与并发后重复测量并展示原始数据。
  2. 预测同一文件第一次写与第二次写的延迟差是否能证明 OverlayFS 固有损耗,增加普通进程/相同存储与缓存对照后再归因。

上一篇:34:冷启动;下一篇:36:交付与回退。

系列总目录:从进程隔离到运行时与编排。

参考资料