上下文切换为何如此昂贵?从寄存器保存到TLB失效的完整技术解析
一台拥有32个CPU核心的服务器,为什么在运行200个线程时性能反而不如运行32个线程?数据库连接池从100扩展到300,为什么吞吐量反而下降了40%? ...
一台拥有32个CPU核心的服务器,为什么在运行200个线程时性能反而不如运行32个线程?数据库连接池从100扩展到300,为什么吞吐量反而下降了40%? ...
2038年1月19日,北京时间上午11点14分08秒,全球数以亿计的计算机系统可能同时陷入混乱。那一刻,Unix时间戳将达到2,147,483,647——32位有符号整数的最大值。下一秒,时间将"倒流"到1901年12月13日。 ...
2024年4月,Amazon EKS的一个GitHub issue报告了一个诡异现象:Elixir应用容器频繁被OOMKilled,但监控显示容器的内存使用量远低于限制。排查发现,真正的元凶是容器被配置了过高的文件描述符限制(1048576),每个文件描述符在内核中都会分配相应的数据结构,累积起来消耗了大量的内核内存,最终触发了OOM Killer。 ...
把同一个网页分别用 macOS、Windows 和 Linux 打开,你会发现一个奇怪的现象:同样的字体、同样的字号、同样的代码,文字看起来却完全不同。macOS 的字体柔和细腻,Windows 的字体锐利清晰,Linux 的字体则介于两者之间——或者说,取决于你的配置文件写了什么。 ...
在游戏社区论坛上,一个反复出现的问题困扰着许多玩家:明明电脑配置足够,为什么游戏会莫名其妙地"卡顿"?有人用LatencyMon工具分析后发现"Hard Page Faults"数值异常,有人尝试关闭虚拟内存后问题消失,有人升级到SSD后卡顿明显改善。 ...
2018年3月,PostgreSQL开发者Craig Ringer在邮件列表中披露了一个令人震惊的发现:PostgreSQL对fsync()错误处理不当可能导致数据损坏。这个后来被称为"fsyncgate"的事件揭示了一个更深层的问题——许多开发者对fsync()的语义存在根本性误解。 ...
在一台双路服务器上,某个开发者写了一个简单的多线程程序来处理内存数据。原本以为增加线程数能线性提升性能,结果却发现:当线程数从1增加到16时,吞吐量不升反降,甚至比单线程还慢了40%。 ...