NUMA架构下为什么你的多线程程序可能比单线程还慢
在一台双路服务器上,某个开发者写了一个简单的多线程程序来处理内存数据。原本以为增加线程数能线性提升性能,结果却发现:当线程数从1增加到16时,吞吐量不升反降,甚至比单线程还慢了40%。 ...
在一台双路服务器上,某个开发者写了一个简单的多线程程序来处理内存数据。原本以为增加线程数能线性提升性能,结果却发现:当线程数从1增加到16时,吞吐量不升反降,甚至比单线程还慢了40%。 ...
1995年,一名程序员在测试文件服务器时发现了一个令人困惑的现象:服务器CPU利用率高达80%,但实际的数据传输速度却远低于硬件理论带宽。追踪后发现,超过60%的CPU时间花在了同一个操作上——memcpy()。 ...
2017年,某高频交易公司的Java系统在关键交易时段出现了一次3.2秒的停顿。这不是网络故障,也不是数据库锁死——仅仅是垃圾回收器在清理一个16GB的堆。在金融交易的世界里,3.2秒意味着数百万美元的损失。 ...
你花了两小时设计了一套"完美"的索引方案:where条件列建了索引,排序字段建了索引,连join的列都建了索引。上线第一天,监控系统就开始报警——那条"应该很快"的查询,执行时间飙到了30秒。 ...