博客
关于 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
CPU steal time 与限流 — 如何区分 top 的 st、可突发型积分和 CFS 配额
CPU 使用率只有 40%,p99 延迟却在飙升,top 的 st 列显示 20%。这些看起来相似的症状背后,藏着三个完全不同的原因:Hypervisor 不把物理 CPU 交给 vCPU 的 CPU steal time、可突发型实例的 CPU 积分耗尽,以及在 top 里根本看不到的 cgroup CFS 配额限流。本文梳理 st 从百分之几开始算问题、怎么读 nrthrottled 和 throttledusec,以及"移除 Ku
2026-07-26 · 23 分钟阅读 #linux#cpu#cgroups#kubernetes#cloud如何好好结束 — 没有人教过我们的技术
我们把开始的方法学了无数遍,却从来没学过怎么结束。本文谈沉没成本谬误把我们扣在原地的结构、安迪·格鲁夫在英特尔抛出的那句只有一行的提问、安妮·杜克关于放弃的主张与坚毅研究之间的张力,以及最后一幕会把整段记忆染上颜色的峰终定律。结束得好的项目与关系有三个共同点:明确的终止宣告、交接,以及一句感谢。
2026-07-26 · 19 分钟阅读 #mindset#endings#sunk-cost#decision-making#retrospective留一件做不好也没关系的事 — 练习做一个业余者
如今一提起爱好,紧接着就是变现的话题。可是业余这个词最初的意思并不是水平不够的人,而是因为热爱才去做的人。本文借索南塔格与弗里茨的恢复体验研究、契克森米哈赖关于心流来自难度与能力之比而非能力本身的发现,以及林维尔的自我复杂性假说,说明为什么保留一件自己做不好的事,其实是恢复与身份认同的问题。最后给出一套成年人重新学点新东西时真正管用的三个月设计。
2026-07-26 · 17 分钟阅读 #mindset#healing#hobby#recovery#identityLLM API 成本优化 — 输出 token、prompt caching 与路由的盈亏平衡计算
把 LLM API 账单砍掉一半靠的是算术,不是感觉。由于输出 token 的单价是输入的数倍,最大的杠杆几乎总是控制输出长度,其次才是 prompt caching。本文整理了缓存只命中前缀这一约束如何强制决定提示的排列顺序、RAG 与全文塞入的盈亏平衡点在哪里、模型路由的节省公式以及随之而来的精度损失该如何用同一把尺子衡量,并给出模拟月度成本的代码,以及 token 估算与实际账单对不上的五个原因。
2026-07-26 · 17 分钟阅读 #llm#cost-optimization#prompt-caching#rag#model-routingKubernetes Pod Pending 状态排查 — 读懂调度器留下的拒绝理由
当 Pod 停在 Pending 好几分钟都不往前走时,调度器其实已经把拒绝理由写进了事件里。本文先从如何准确解读那句以 0/5 nodes are available 开头的话讲起,再逐一排除九类原因。内容涵盖资源不足是按 requests 总和而非实际用量判定这一点、taint 与容忍度、节点选择器与亲和性不匹配、PVC 未绑定与 WaitForFirstConsumer 的正常等待、Pod 反亲和性导致的自我排除、topology
2026-07-26 · 17 分钟阅读 #kubernetes#scheduler#pending#troubleshooting#autoscalingLLM structured output 的稳定化 — 消灭解析失败的四层防御
明明要的是 JSON,回来的却裹着 markdown 代码围栏,或者后面跟了一句说明,又或者在 token 上限处被截断——本文整理了按层次解决这些问题的方法。先对失败类型做分类,再把防御从提示指令一路叠到函数调用 schema 与约束解码,同时把“约束解码只保证语法有效性、不保证语义正确性”这条界线讲清楚。字段名与顺序为什么会改变精度、把错误信息回灌给模型的重试循环怎么实现、如何检测并应对截断,都用代码讲。
2026-07-26 · 16 分钟阅读 #llm#structured-output#json-schema#constrained-decoding#validation不靠感觉做 LLM 评测 — 样本量、评判者偏差与 CI 回归测试
改完提示就凭“好像变好了”上线的团队,没有办法看见悄悄堆积的回归。本文把评测分成断言、黄金数据集、LLM-as-judge、人工评估四个层次,梳理各自的成本与可信度,并讲清如何抵消评判模型的位置偏差和长度偏好。文中算出用 20 个样例得出的结论其置信区间到底有多宽,并用代码展示配对比较能把所需样本压到几分之一。还包括在温度 0 也无法完全复现的环境里如何搭建 CI 回归测试。
2026-07-26 · 16 分钟阅读 #llm#evaluation#llm-as-judge#statistics#regression-testing为什么平均负载不是 CPU 使用率 — load average 24 而 CPU 只有 30% 的时候
本文讨论这样一种情况:uptime 的 load average 已经超过 24,而 top 里的 CPU 却连 30% 都不到。Linux 的平均负载与其他 Unix 不同,它不仅统计处于运行等待 (R) 的任务,还把 D 状态 (uninterruptible sleep) 的任务一并计入,因此仅仅是磁盘或 NFS 等待就足以让这个数字飙升。文章梳理三个数字如何由 5 秒采样与指数移动平均生成、按核心数相除的习惯在哪里失效、负载高但
2026-07-26 · 17 分钟阅读 #linux#performance#load-average#psi#troubleshootingToo many open files 彻底解决 — 为什么调高 ulimit 也没用
服务器日志里出现 accept4 failed (24: Too many open files),把 ulimit -n 调高之后依然如故。这个症状背后是三个彼此独立的上限:每个进程各自的 RLIMITNOFILE、系统全局的 fs.file-max,以及 systemd 服务的 LimitNOFILE 会完全忽略 shell 里的 ulimit 设置这一事实。本文梳理如何用 /proc/PID/limits 确认真正生效的值、如何把
2026-07-26 · 19 分钟阅读 #linux#systemd#file-descriptor#troubleshooting#containers爵士乐是怎样诞生的——从刚果广场到Kind of Blue
爵士乐的第一位传奇巴迪·博尔登没有留下一张录音,而1917年做出世界上第一张爵士唱片的,是一支白人乐队。法国与西班牙轮流统治过的新奥尔良,每逢星期天可以敲响非洲鼓的刚果广场,正式学过欧洲音乐的克里奥尔演奏家,以及把他们推进黑人乐队的1894年种族法令——本文从布鲁斯与拉格泰姆这两条根出发,一路追到路易斯·阿姆斯特朗的独奏、比波普的反叛,再到1959年的Kind of Blue,整整六十年。文章最后给出第一次听爵士的人该把耳朵放在哪里,以
2026-07-26 · 24 分钟阅读 #humanities#music#jazz#music-history#culture地图为什么会说谎 — 从墨卡托到搜索算法
格陵兰只有非洲的十四分之一大,可在教室墙上的世界地图里,两者看上去差不多。这不是失误,而是设计。本文从高斯证明球面无法摊成平面出发,一路追踪为航海保住角度而放弃面积的1569年墨卡托投影、以政治抗议登场却自身带着变形的高尔-彼得斯投影之争、把谁放在中央和把哪边朝上的政治,以及画的不是精度而是世界观的中世纪世界图。最后要问的是:今天的制图者究竟是谁?因为网络墨卡托与搜索排名,正在重画我们脑子里那个世界的形状。
2026-07-26 · 21 分钟阅读 #humanities#history#cartography#geography#powerKubernetes ImagePullBackOff 与 ErrImagePull 完全解剖 — 一个原因字符串就能收尾
把 Pod 经过 ErrImagePull 之后停留在 ImagePullBackOff 的情况按原因逐一拆解。出发点有两个:这两个状态是同一事件的不同阶段,以及 kubectl describe 的 Events 最后一行里其实已经写好了答案。文章覆盖八条分支——标签拼写错误、私有镜像仓库认证失败、Secret 没有挂到 ServiceAccount 上的情况、Docker Hub 匿名拉取的速率限制、代理与气隙环境、把在 Apple
2026-07-26 · 16 分钟阅读 #kubernetes#imagepullbackoff#container-registry#troubleshooting#containerd.gitignore 不生效的时候 — 头号原因与模式规则精读
明明在忽略列表里写清楚了,文件却还是一直被提交上去,原因基本只有一个:对已经被跟踪的文件,忽略规则不生效。本文讲清楚把它从索引里摘出来的准确命令,以及这条命令会把文件从同事工作目录里删掉的副作用;讲怎么用 check-ignore 直接问 Git 究竟是哪条规则在作祟,以及它对被跟踪文件什么都不输出的坑;还有前导斜杠、末尾斜杠和否定模式的顺序依赖,排除上层目录会让其中的否定模式失效这条规则,忽略规则的优先级层次,以及不区分大小写的文件系
2026-07-26 · 16 分钟阅读 #git#gitignore#troubleshooting#security#version-control正确使用 Kubernetes 三种探针 — liveness、readiness、startup 的准确边界
毫无问题的 Pod 周期性重启、刚发布完就冒出大量 502、启动缓慢的应用永远到不了 Ready,这三类故障全都出自探针设计。文章先区分三种探针各自回答什么问题、失败时又会做什么,然后计算从 initialDelaySeconds 到 failureThreshold 这些参数实际会在几秒之后杀掉容器。接着讨论把数据库检查放进 liveness 为什么会让单点故障扩散成全面故障、readiness 里到底可以放到什么程度、exec 探针
2026-07-26 · 21 分钟阅读 #kubernetes#liveness-probe#readiness-probe#graceful-shutdown#sre用 Git 内部结构理解命令 — 用对象、引用、索引重读 reset 和 rebase
把 Git 命令背下来,结果每次还得搜;可只要懂了数据模型,命令的行为是可以推出来的。本文用 cat-file 和 ls-files 亲手打开来看:blob、tree、commit、tag 这四种对象,相同内容永远得到相同哈希的内容寻址,分支不过是一个 41 字节的文件这一事实,以及索引里到底装了什么。有了这个模型,reset 为什么是指针移动、rebase 为什么不是搬走提交而是新建提交、cherry-pick 为什么会冲突、deta
2026-07-26 · 16 分钟阅读 #git#internals#git-objects#fundamentals#version-controlKubernetes OOMKilled(137) 内存问题排查 — 在调高上限之前要确认的事
本文讨论容器以 Exit Code 137 退出、应用日志里却没有留下任何异常的情况。文章从 137 只能说明 128 加 9、也就是 SIGKILL 这一事实出发,整理了如何用一行 dmesg 区分容器 cgroup 上限导致的 OOM、节点全局 OOM 以及 kubelet 驱逐。文章用真实的命令和输出说明:JVM、Node.js 和 Python 会如何误解容器上限,为什么调大堆反而会让情况恶化,working set、RSS 和
2026-07-26 · 19 分钟阅读 #kubernetes#oomkilled#memory#jvm#cgroup一把胡椒把世界连了起来 — 香料贸易与全球化的原型
408年围困罗马的阿拉里克开出的赎金清单上,金银之外还列着1360公斤胡椒。如今在超市几十元就能买到的果实,当年为何贵到这个地步?那个流传甚广的说法 — 香料是用来盖住腐肉气味的 — 又为何证据薄弱?本文先厘清这两点,再依次追踪1498年达伽马抵达卡利卡特、1602年成为世界第一家股份公司的荷兰东印度公司与1621年班达屠杀,以及1667年布雷达条约里让伦岛与曼哈顿分道扬镳的那场著名交换的真实脉络。最后要看的是今天的供应链:胡椒换成了可
2026-07-26 · 23 分钟阅读 #humanities#history#trade#globalization#colonialism牛顿为什么重写了世界——苹果、《自然哲学的数学原理》与预测这块试金石
苹果没有砸在牛顿头上。那则轶事的出处是1752年威廉·斯蒂克利的回忆录,而故事本身出自八十三岁的牛顿之口。鼠疫让剑桥关门的1665年"奇迹之年",其实是把长达二十年的工作压缩进一年的叙事;而1687年的《自然哲学的数学原理》,是哈雷自掏腰包付了出版费的书。与莱布尼茨的微积分优先权之战、凯恩斯在1936年苏富比拍卖会上买下的炼金术手稿、围绕"站在巨人肩上"这句话的解释之争,再到两百年后爱因斯坦的修正为什么不算失败——文章最后落在一个问题上
2026-07-26 · 22 分钟阅读 #humanities#science#history-of-science#newton#physics钱不是从物物交换里诞生的 — 从吕底亚硬币到信用货币的货币世界史
经济学教科书的第一章说,货币诞生于物物交换的不便,可人类学家至今没有找到哪怕一个这样的社会。公元前7世纪吕底亚的琥珀金硬币、11世纪宋代四川诞生的世界最早纸币交子、波托西白银掀起的16世纪价格革命,直到1971年8月尼克松关上黄金窗口的那个夜晚 — 本文追踪货币真正走过的路。最后登场的是太平洋雅浦岛的巨型石币:不用搬动、甚至沉入海底也照样管用的石头,最准确地解释了今天我们账户里的余额究竟是什么。
2026-07-26 · 22 分钟阅读 #humanities#history#money#economics#financegit 撤销 — 按情况挑选 restore、reset、revert、reflog
把撤销命令背下来,结果每次还是要搜;可要是先把"我到底想撤销什么"分类清楚,命令自己就定下来了。本文把问题拆成六种情况——工作目录、暂存、上一条提交信息、提交本身、已经推送出去的提交、被删掉的分支——并给出各自准确的命令和风险等级。文中用一张表展示 reset 的 soft、mixed、hard 分别移动 HEAD、索引、工作树中的哪些部分,说明为什么已推送的历史只有 revert 这一个答案,以及把合并提交 revert 之后再合并一
2026-07-26 · 16 分钟阅读 #git#undo#reset#reflog#version-control