知识卡片
PPC与TPC模式的核心权衡——进程隔离性 vs 线程轻量性
内容
单服务器并发的两种经典模式:PPC(每连接fork一进程)进程隔离互不影响,但fork代价高、并发数一般只到几百;TPC(每连接开一线程)更轻量,共享内存使通信简单,但有锁竞争和死锁风险,一线程崩溃可能拖垮全进程。两者的”预建”版本都是把创建提前到启动完成,避免请求时才建的延迟,但没解决并发数天花板。发散:这是隔离性与轻量性的权衡——稳定性优先场景(如数据库服务器)反而更适合PPC。
参考来源
- 位置:《从0开始学架构》第22章《18|单服务器高性能模式:PPC与TPC》"PPC""TPC"两节(源文件:_epub-src/OEBPS/Text/part0021_split_000.html、part0021_split_001.html)
- 结论依据:原文明确"一般情况下,PPC方案能处理的并发连接数量最大也就几百",且"PPC模式实现简单,比较适合服务器的连接数没那么多的情况,例如数据库服务器";TPC"在并发几百连接的场景下,反而更多地是采用PPC的方案,因为PPC方案不会有死锁的风险,也不会多进程互相影响,稳定性更高"。
- 原始内容:PPC模式实现简单,比较适合服务器的连接数没那么多的情况,例如数据库服务器……一般情况下,PPC方案能处理的并发连接数量最大也就几百……在并发几百连接的场景下,反而更多地是采用PPC的方案,因为PPC方案不会有死锁的风险,也不会多进程互相影响,稳定性更高。