文件描述符为何会耗尽:从内核内存到OOM Killer的三层陷阱

2024年4月,Amazon EKS的一个GitHub issue报告了一个诡异现象:Elixir应用容器频繁被OOMKilled,但监控显示容器的内存使用量远低于限制。排查发现,真正的元凶是容器被配置了过高的文件描述符限制(1048576),每个文件描述符在内核中都会分配相应的数据结构,累积起来消耗了大量的内核内存,最终触发了OOM Killer。 ...

12 min · 5548 words

为什么代码在本地正常部署到生产就崩溃:从环境差异到配置管理的完整排查指南

2012年6月30日,一次闰秒插入导致Reddit、LinkedIn等知名网站相继瘫痪。Linux内核处理闰秒时触发死锁,服务器CPU飙升至100%。这个事故揭示了一个被严重低估的问题:在分布式系统中,时间是最大的不确定性来源。 ...

11 min · 5364 words