博客
关于 GPU、LLM、MLOps、Kubernetes 以及心态的文章 · 829 篇
#2026-03 168#ai 110#llm 90#ai-papers 62#career 60#kubernetes 54#mindset 51#ai-platform 48#devops 42#security 41#deep-learning 35#performance 33#psychology 32#mlops 30#observability 29#2026-04 26#database 23#linux 22#robotics 22#rust 22#ai-agent 21#mcp 20#productivity 20#culture 19#evaluation 19#gpu 18#transformer 18#electronics 17#paper-review 17#pytorch 17#developer-tools 16#distributed-systems 16#engineering 16#learning 16#open-source 16#rag 16#fundamentals 15#network 15#postgresql 15#2026-08 14
分布式追踪真正回答的问题 — 跨度、采样,以及时间到底花在哪里
当「慢」的反馈不断进来、却不知道十个服务里谁是凶手时,你需要的就是追踪。本文从追踪、跨度与上下文传播的结构讲起,梳理出日志和指标在原理上回答不了的问题是什么。文中结合采集器配置,讲清自动埋点覆盖到哪里、哪些位置必须补上手动跨度、头部采样为什么会优先丢掉你最需要的追踪,以及尾部采样如何解决这一点、代价又是什么。接着讲跨消息队列传播上下文时为什么要用链接而不是父子关系,最后给出在真实追踪界面上到底该找什么的排查顺序。
2026-07-26 · 21 分钟阅读 #observability#distributed-tracing#opentelemetry#tail-sampling#performanceHTTP Keep-Alive 与连接复用 — 制造间歇性 502 的超时竞态条件
后端日志里一个错误都没有,却唯独负载均衡器上间歇性地混进 502,这多半是连接复用的竞态条件。就在服务器关闭空闲连接的那一瞬间,客户端往这条连接上写入请求,于是 FIN 与请求擦肩而过。本文整理了为什么后端 keepalive 超时要设得比负载均衡器空闲超时更长、如何用 curl -w 把 namelookup 与 connect 与 appconnect 与 starttransfer 拆开以定位瓶颈、如何用利特尔法则确定连接池大小,
2026-07-26 · 20 分钟阅读 #network#http#performance#load-balancer#tcpdig 能通但应用失败 — 先从 DNS 解析顺序查起
dig 能正常拿到答案而唯独应用找不到名字,这不是 bug 而是结构使然。因为 dig 和 nslookup 根本不经过 /etc/hosts 和 nsswitch.conf,而是直接向解析器发起查询。本文沿着应用真正走过的路径,从 nsswitch.conf 一路追到 systemd-resolved 的存根解析器,并整理如何用 getent 和 resolvectl 复现同一条路径。文中还会讲清 Kubernetes 里 ndots
2026-07-26 · 17 分钟阅读 #network#dns#linux#kubernetes#troubleshooting时间管理的幻觉 — 换了工具,日子为什么还是老样子
如果待办应用已经换过五个,一天却还是原来的样子,问题不在工具,而在承诺的总量。本文梳理了卡尼曼和特沃斯基命名的规划谬误、用外部视角校正日程的方法、帕金森定律与截止日期的真实作用、奥利弗·伯克曼的4000周论点、按认知曲线安排困难工作的方法、日历为什么赢过待办清单,以及用人数和时间给会议算成本的习惯。最后是一份不做清单。
2026-07-26 · 17 分钟阅读 #mindset#productivity#time-management#focus#work如何做出好决定 — 好决定和好结果不是一回事
超级碗最后一传被拦截,所有人都说那是史上最糟的选择。但用结果给决定打分的习惯,几乎抹掉了所有本可以学到的东西。本文梳理了安妮·杜克的结果论、贝索斯划分单向门与双向门的标准、事前验尸与10/10/10、满意化与最大化的区别,以及决定日志。这是一篇关于如何真正提高决定质量、并让它在日后可以被打分的流程的文章。
2026-07-26 · 18 分钟阅读 #mindset#decision-making#psychology#productivity#self-improvementSQL 注入与参数绑定 — 用了 ORM 仍然会被打穿的那些地方
搜索 SQL 注入的对策,最先跳出来的往往是转义函数,但正确答案是参数绑定。转义是试图让值在字符串字面量里变得安全,而绑定是让值根本不进入 SQL 文本的结构性分离。本文用日志确认预处理语句在服务端究竟是怎样被解析和执行的,再用 Python 和 JavaScript 代码展示即使用了 ORM 也会被打穿的三个地方,以及 ORDER BY 或表名这类根本无法绑定的位置该如何处理。文章还会覆盖 LIKE 子句的通配符、保存下来的值日后才引
2026-07-26 · 22 分钟阅读 #security#sql#database#orm#python历史小说究竟能编到哪一步 — 事实与虚构之间的契约
历史小说是带着一纸静悄悄的契约开场的:已知的部分绝不去动,只填补记录留白的位置。事实、解释与创作这三层结构,考据做得越完美反而越没人读的悖论,希拉里·曼特尔的《狼厅》如何只靠挪动一个视角就翻转了人物形象,把当代价值观移植进过去会出什么问题,以及书写真实人物与集体记忆时的分量 — 全文整理如上。不含剧透,文末附有入门路线。
2026-07-26 · 17 分钟阅读 #storytelling#historical-fiction#fiction#narrative#history损失比获得痛两倍 — 前景理论原文与此后的45年
“人感受到的损失之痛,是获得之喜的两倍”这句话,如今是谈判教材和定价方案里的常客。可是翻开出处——卡尼曼与特沃斯基1979年发表在《计量经济学》上的论文——真正的材料只是抛给以色列大学生的几道假想赌局题,外加一张回答比例表。那个著名的“两倍”并不出自1979年,而是1992年一项以25名研究生为对象的后续研究的中位数;2018年之后,还出现了认为损失规避被夸大的重新检验。我们用代码看看一个损失规避系数如何让期望值为正的赌局被拒绝,并分开
2026-07-26 · 18 分钟阅读 #psychology#paper-review#behavioral-economics#decision-making#moneyRAG 答非所问时 — 区分检索失败与生成失败的调试流程
RAG 给出错误答案时,多数人先去改提示,但真实原因大多出在检索阶段。本文先给出一次实验就能把检索失败与生成失败切开的流程——把正确分块直接手动喂进去,然后讲清为什么分块是最常见的凶手、嵌入相似度与语义相似度分道扬镳的地方、混入 BM25 常常获胜的理由、重排序值回票价的条件,以及给分块加上文档标题和元数据后的效果。最后附上构建黄金集并测量 recall@k 与答案包含率的代码。
2026-07-26 · 18 分钟阅读 #llm#rag#retrieval#chunking#evaluation明知结局还是读得下去 — 类型浪漫小说的文法
浪漫小说是唯一一个结局早已定好的大众类型。可那不是弱点,而是与读者签下的契约。本文梳理了 HEA 与 HFN 这两条类型约定、帕梅拉·雷吉斯归纳的八个要素及其核心的障壁、从敌人变恋人到契约恋爱这五种套路各自制造的不同张力、双视角为何成为标准,以及用误会搭起来的冲突为何会垮、价值观的碰撞为何扛得住。此外还谈到《傲慢与偏见》为何两百年来一直是结构教科书,以及韩国罗曼奇幻做出的变形。不透露任何作品的结局。
2026-07-26 · 19 分钟阅读 #storytelling#romance#fiction#narrative#cultureOOM Killer 杀掉进程之后 — 从解读 dmesg 日志到区分 cgroup OOM
进程没有留下任何日志就消失了,退出码是 137。本文整理如何逐行阅读内核 OOM Killer 留下的 dmesg 报告、badness 分数是怎么算出来的以及为什么被杀的往往不是最大的那个进程,还有如何仅凭日志区分系统全局 OOM 和 cgroup v2 memory.max 引发的容器 OOM。同时覆盖 overcommitmemory 0/1/2 到底改变了什么、"有 swap 就不会 OOM"这个误解为什么是错的,以及如何用 e
2026-07-26 · 22 分钟阅读 #linux#memory#oom#cgroups#kubernetesLLM 推理显存计算法 — 比权重先爆的是 KV cache
整理了用几次乘法回答“这个模型能装进我们的 GPU 吗”的方法。权重内存用参数量乘以每参数字节数就算完了,但真正挡住部署的是随序列长度和批大小一起长大的 KV cache。本文用数字讲清 KV cache 公式、GQA 把它压到几分之一的原理、预填充激活与框架开销的量级、PagedAttention 消除的碎片损失,以及 4bit 量化并不免费的理由,并附上一个从现有显存反推可并发序列数的计算器函数。
2026-07-26 · 16 分钟阅读 #llm#inference#vram#kv-cache#quantization容器镜像漏洞扫描结果怎么读 — 把几百个 Critical 变成 0 的实际做法
第一次跑镜像扫描器,会吐出几千条漏洞,其中相当一部分是 Critical。把这份报告原封不动丢给团队,结果是什么都不会发生。本文从一个事实出发:扫描器实际做的只是把已安装的包清单和 CVE 数据库对一遍。由此解释厂商回移补丁造成的误报、为什么必须参考发行版的安全公告,以及应用代码里的漏洞压根就看不见这一局限。文章会讲清为什么不能只看 CVSS 分数、如何把 EPSS 和 KEV 这类真实利用指标一起读,并用命令和输出展示:消掉几千条漏洞
2026-07-26 · 17 分钟阅读 #security#container#docker#trivy#kubernetes结构化日志设计 — 做出故障时真正派得上用场的日志
如果你曾在故障正中间 grep 日志 grep 到放弃,那说明日志设计错了。本文讲如何把给人看的日志和给机器看的日志分开,确定每一行都必须包含的字段,并立起判断日志级别的唯一标准。文中用真实代码整理了用 W3C traceparent 跨服务边界追踪请求的方法、把个人信息与密钥过滤掉的脱敏配置、不会把故事切碎的请求级采样,以及基数与成本的计算。最后给出日志、指标、追踪各自应该在什么时候看的顺序。
2026-07-26 · 16 分钟阅读 #observability#logging#structured-logging#opentelemetry#incident-response可怕的故事为何让人享受 — 恐怖类型的心理学与文法
人们花钱去把自己吓一跳。本文从解释这一悖论的三种说法出发 — 多尔夫·齐尔曼的激动转移、在安全环境里预演威胁,以及在鬼屋里真的去测心跳的研究 — 接着梳理恐惧的三个层次、希区柯克归纳的悬念原理、宇宙恐怖与民俗恐怖与心理恐怖的分别、日式恐怖里「怨」的逻辑,以及丧尸在每个时代换上的不同焦虑。文中也谈到那些觉得可怕一点都不好玩的人的个体差异。不透露任何作品的反转或结局。
2026-07-26 · 19 分钟阅读 #storytelling#horror#psychology#film#cultureping 能通但只有大请求卡住 — 解剖 MTU、MSS 与 PMTUD 黑洞
小请求都很顺利,唯独大响应会卡在半路的症状,几乎总是路径 MTU 问题。TCP 是按接口 MTU 来通告 MSS 的,如果路径中间更窄,本应由路径MTU发现通过 ICMP Fragmentation Needed 来告知,而一旦防火墙把这个 ICMP 丢掉,黑洞就形成了。本文整理了 MSS 与 MTU 的算术、如何用 ping -M do 二分查找路径 MTU、IPsec 与 WireGuard 与 VXLAN 实际拿走多少字节、为什么
2026-07-26 · 18 分钟阅读 #network#mtu#tcp#vpn#kubernetesKubernetes CrashLoopBackOff 分原因诊断与解决 — 日志为空时该看什么
完整梳理 Pod 陷入 CrashLoopBackOff 而 kubectl logs 什么都不输出的场景。先讲清 BackOff 的准确含义 — 它不是原因,而是从 10 秒一路涨到 5 分钟的重启等待时间,再讲阅读 describe 中 Last State 与 Exit Code 的顺序,以及退出码 0、1、127、137、139、143 各自代表什么。文章按原因给出诊断命令与解决方案:应用启动即退出、配置与 Secret 缺失、
2026-07-26 · 17 分钟阅读 #kubernetes#crashloopbackoff#troubleshooting#kubectl#sre凌晨三点不会把你叫醒的告警设计 — 症状告警与燃烧率实战
on-call 之所以崩溃,不是因为告警太少,而是因为太多。本文从告警疲劳如何让人错过真实事故的机制讲起,讲清「只对症状呼叫、把原因留在仪表盘上」这一原则,以及从 SLO 与错误预算倒推阈值的方法。文中用 Prometheus 规则和 promtool 测试展示:把短窗口与长窗口用 AND 串起来的多窗口燃烧率告警如何同时兼顾灵敏度与误报,以及 for 子句防止抖动的原理是什么。最后整理出在 CI 里强制 runbook 链接、并定期删
2026-07-26 · 18 分钟阅读 #observability#alerting#slo#error-budget#prometheus邓宁-克鲁格效应 — 那张著名的曲线图并不在原论文里
网上四处流传的“愚昧之巅”曲线图,在邓宁与克鲁格1999年的论文里根本不存在。原论文是四项研究:让康奈尔大学的本科生完成幽默、逻辑与语法任务,再按成绩四分位比较自我评价;真实结果显示,高分组低估自己的幅度,和低分组高估自己的幅度不相上下。更扎心的批评还在后面——把自我评价与实际成绩换成毫无关系的随机数,照样能画出一模一样的图。向平均回归造成的错觉、重新分析929人的2020年论文,以及即便如此仍然值得保留的元认知训练价值,本文一并梳理。
2026-07-26 · 15 分钟阅读 #psychology#paper-review#metacognition#self-assessment#statisticsConnection refused 与 timeout 的区别 — 在 TCP 层面收敛原因
连接不上时终端返回的消息大致分为两类。Connection refused 意味着对端回了一个 RST,timeout 则意味着发出去的 SYN 没有得到任何应答。这一行之差几乎就决定了问题出在进程还是出在路径。本文整理了如何用 tcpdump 直接确认 SYN 与 RST、如何用 SYN 重传间隔提前算出超时长度、有监听却依然 timeout 的 accept 队列溢出,以及容器里绑定到回环地址所引发的典型事故。
2026-07-26 · 16 分钟阅读 #network#tcp#troubleshooting#linux#kubernetes