字体
大
中
小
关灯
上一页 回目录    收藏 下一页

第322章 你错哪了(2/3)

“既然双方都认为自己是对的,那就不要吵了。

我们做一个技术推演。

用事实说话。”

他在白板上画了一个方框,写了“WindOWS NT 4.

0”。

“玛斯克,你想把系统迁到NT上。

那我们就假设迁移成功了。

整套支付后端跑在WindOWS NT Server 4.

0上面。

现在我们假设一个场景。”

他在方框下面写了一行字:圣诞节促销日,高峰时段。

“eBay在今年的感恩节和圣诞节促销期间,单日交易笔数峰值超过了一百五十万笔。

而在线支付作为eBay的主要支付通道,至少要承接其中百分之四十以上的交易。

也就是说,一天之内你们的系统要处理六十万笔以上的实时支付请求。

这些交易的特征是什么?

金额小,频率高。

平均交易额不到二十美金,但并发量极大。

高峰时段每秒钟涌进来的请求数可以到几百甚至上千。”

陈浩在白板上画了一条时间轴,标注了流量曲线。

“这种场景下,NT的IIS中间件层会发生什么?”

他转过身看着玛斯克。

玛斯克没有回答,眼睛盯着白板。

陈浩继续在白板上写。

“WindOWS NT 4.

0的IIS,底层的线程调度模型是基于I/O完成端口。

理论上这个机制在处理中等并发量的时候效率不错。

但是它有一个天生的短板,那就是内存管理。”

他画了一个内存分配的示意图。

“NT的内核在处理大量短生命周期的TCP连接时,每一次连接建立都会分配一块非分页内存池。

连接关闭之后,这块内存的回收依赖于内核的延迟回收机制。

在正常负载下,回收速度跟得上分配速度,没有问题。”

他在示意图的右侧画了另一条曲线,标注了“高频并发”。

“但在每秒数百笔支付请求的场景下,TCP连接的建立和断开速度远超内核回收的节奏。

非分页内存池会在短时间内被耗尽。

一旦非分页池枯竭,NT内核不会优雅地降级。

它会直接蓝屏。”

陈浩在白板上画了一个大大的方块,里面写了“BSOD”。

“整台服务器直接死掉。

这不是性能下降,或者响应变慢。

而是整个操作系统层面的崩溃。

更可怕的是,这个问题不是单点的。

如果你用NT做集群,负载均衡器把流量转到备用节点。

备用节点在同样的高并发下,同样的内存耗尽逻辑,同样会蓝屏。

所有的机器在几分钟之内全部死掉。”

他把马克笔放回架子上,转身看向三人。
本章未完,请翻下一页继续阅读.........
上一页 回目录    收藏 下一页