← 返回资讯

网关stdout一直增长,怎样离线核对Docker日志轮转的磁盘预算

2026-10-24

网关持续写stdout,磁盘预算不能只用业务message长度乘行数。Docker的json-file还为每条记录包装来源与时间等字段。本文先生成明确标假的JSONL,计算这份合成格式的UTF-8字节,再用容器数与轮转参数做离线预算,没有读取或操作Docker管理的日志文件。

先明确每行大小来自哪份字节

样本message为“合成网关日志”加换行,同时带stdout和固定纳秒形状时间戳。使用附件指定的紧凑JSON编码并追加一个LF,整行八十九字节。公开JSONL以明确的UTF-8字节写入,运行器读取实际文件,断言与计算序列完全相同、无CR且末尾为LF,实际文件同样八十九字节。这个数字是本脚本合成序列的精确长度,不是所有Docker版本每行必然八十九;实际序列化空白、转义及时间格式都需从只读样本核对。

二十行每秒、三个容器,增长为每秒五千三百四十字节,一小时一千九百二十二万四千字节。message里中文按UTF-8编码,内部换行被JSON转义,不能直接用显示字符数估算。错误栈、多行记录与高峰流量还会改变平均行大小,真实预算宜分别计算典型与峰值。

轮转配置只约束对应日志域

本例每容器max-size一千万字节,max-file三,三个容器名义文件预算九千万字节。另加百分之二十余量,规划为一亿零八百万字节。余量是本地假设,不是Docker保证的严格峰值;记录跨过阈值、轮转切换、文件系统开销和其他写入都可能带来差异。

Docker官方说明json-file的轮转选项,max-file需要与max-size配合考虑。设置参数还要核对实际容器采用的日志驱动与选项,不能只修改一份默认配置就认定现有容器已改变。附件Compose片段使用字符串值,当前只提供静态参考,未创建容器或观察实际轮转文件数。

预算表里另列其他磁盘使用

镜像、可写层、数据卷、代理临时文件和应用自己写的文件日志,不包含在这九千万中。多个副本和旁路进程也应分别列出,不能把一个容器的日志限额当成整机磁盘上限。未轮转情况下按给定增长耗尽同等容量的时间,也只是规划比值,不代表轮转服务一定会在那个时刻报满。

现场可只读查看日志驱动配置、文件大小及磁盘余量,避免直接编辑、截断或删除Docker管理的JSON日志。本文实际运行的是字节编码与预算算术,没有测生产增长率,也没有验证轮转实现。保留合成JSONL、参数表和计算结果,能在参数修改时重算;接入真实观测后,应替换行大小与速率输入,同时保留峰值余量和日志域之外的磁盘预算。

配套样本与复核入口

下载本篇独立合成输入和实验运行器,并下载运行器实际读取的c044-synthetic.jsonl。上述文件放在同一目录后运行 python run_lab.py C044。完整运行需要全部四十四份输入及相关配置。结果中的method区分离线计算、静态参考检查与回环实测,不能把前两者当成真实网关已通过。

补充文件:c044.compose.yaml、c044-budget.json。合成表供独立复算,配置片段是否实跑以正文说明为准。

资料核对日期:2026-10-24。官方依据1;官方依据2。

与本站相关基础教程的区别:旧文讲业务日志分层与留存;本文只算容器json-file轮转边界、容器数和每行封装开销,既不整理API账单也不改日志平台。

加微信,把这一页发到你手机上

扫码加站长企业微信,会自动把这一页的链接发给你。模型接入、token 计费上有问题,也可以直接问。

去留微信

不想自己搭网关、自己维护渠道?

力达云是托管的 OpenAI / Anthropic 双格式端点,一期提供 DeepSeek,注册送 ¥5 额度。

去试用

这个页面有问题?

提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。