容器日志体积失控:json-file 驱动的 max-size 与 max-file 配置脚本
Docker 默认使用 json-file 日志驱动,而且默认不做任何轮转。一个打印量稍大的服务,跑上两周就能把宿主机的 /var/lib/docker 撑满,然后你会在 docker ps 里看到容器状态变成 Up 但业务全挂,或者在 dmesg 里看到 No space left on device。更麻烦的是,日志文件被删掉之后磁盘空间并不一定释放——
FWDD.NET · 技术文档站
聚焦后端工程实践:语言教程、功能实现、面试题与运维脚本。每篇都从真实踩坑场景出发,给出可直接复用的代码与取舍依据。
Docker 默认使用 json-file 日志驱动,而且默认不做任何轮转。一个打印量稍大的服务,跑上两周就能把宿主机的 /var/lib/docker 撑满,然后你会在 docker ps 里看到容器状态变成 Up 但业务全挂,或者在 dmesg 里看到 No space left on device。更麻烦的是,日志文件被删掉之后磁盘空间并不一定释放——
集群里最容易被忽略、又最容易引发"玄学故障"的基础项,就是时间。NTP 漂移几百毫秒,可能让 JWT 校验随机失败、让 Kafka 消费者位点错乱、让分布式锁提前释放、让 ELK 里的日志时间线对不上。而这类问题往往不具备可复现性,排查成本极高。 手工逐台 ssh 上去看 chronyc tracking 的运维方式,在几十台机器规模下就完全不可接受了。本文
用 curl 做服务健康检查几乎是所有运维脚本的标配,但大多数实现只写了一行 curl -s -o /dev/null -w "%{http_code}",然后判断是否等于 200。这种写法在真实生产环境里会暴露三个问题:没有设置超时导致脚本被挂死、把「服务不可达」和「服务返回业务错误」混为一谈、无法区分 HTTP 状态码中哪些属于自身异常、哪些属于上游依赖
面试里问 MVCC,八成的候选人能说出「快照读」「undo log」「ReadView」,但一旦追问「ReadView 里到底存了什么、四个字段怎么比、为什么 RR 和 RC 结果不一样」,回答就开始含糊。这篇把 InnoDB 的 ReadView 拆到字段级别,用可复现的 SQL 走一遍可见性判断的完整分支,最后给出一份面试可直接背的答题骨架,以及几个高频
一、CAP 与 BASE 分布式下 P(分区容错)…
一、单例模式 双重检查锁(DCL)最经典,i…
一、#{} 与 ${} 的区别 写法 处理方式 用…
一、@Transactional 为什么失效 Spring 事…
一、Bean 生命周期 实例化(构造) → 属性…