后端与运维笔记
这里记录我在服务端工程里遇到的具体问题和它们的解法——大多来自线上排查、性能调优和日常运维,写下来是为了下次不用重新想一遍。
内容偏实操:命令、配置、执行计划、压测数字。能给出量化结论的地方尽量给数字,没验证过的推测会说明是推测。
最近的文章
-
LCP 从 4.2 秒到 1.1 秒
一次落地页首屏优化的完整记录:怎么采集真实用户的 LCP、定位 LCP 元素被什么卡住、图片与字体的处理顺序,以及三个看起来该有效实际没效的尝试。
-
nginx 反向代理调优笔记
默认配置能跑但跑不好。上游长连接为什么常常配了不生效、缓冲区什么时候会偷偷落盘、三个超时的默认值为何都该改小,以及一份能真正帮上忙的日志格式。
-
一行正则跑满 CPU:灾难性回溯复盘
代码一年没动,某天忽然把四个 Pod 的 CPU 全部打满。从 py-spy 采样到嵌套量词的指数级回溯,再到三种修法和 CI 里的静态检查。
-
从 git flow 切到主干开发的半年
八人团队的迁移记录:为什么受不了长期分叉的 develop、功能没做完怎么合进主干、发布为什么改用 tag,以及半年后的分支存活时长和故障恢复时间对比。
-
把一个 Node 镜像从 1.2 GB 压到 90 MB
六个步骤和每一步的实际收益:先用 docker history 找到体积在哪,再谈基础镜像选型、多阶段构建、依赖裁剪和层缓存顺序。附带说明为什么没有用 distroless。
-
HTTP 缓存的三层结构
按「能不能不发请求 / 能不能不传正文 / 过期了能不能先用着」三层来组织:Cache-Control 各指令的实际语义、ETag 在多机部署下的陷阱、stale-while-revalidate 的用法,以及 Vary 怎么把命中率清零。
-
内存报警之后:从 free 的输出读到 OOM Killer
「内存使用率 94%」多半是监控算错了列。available 与 free 的区别、脏页和 slab 各自什么时候成为问题、用 PSS 而不是 RSS 找占用者,以及容器里该看哪些 cgroup 文件。
-
为什么加了索引,查询还是走全表扫描
五种常见的索引失效场景:函数包裹列、隐式类型转换、选择性太差导致规划器主动放弃、前缀通配与排序规则、统计信息过期。附一份按顺序执行的排查清单。