传统的单服务器高性能模式:
ppc(Process per Connection) :针对每个连接都新建一个线程去处理连接中的请求
缺点:
1 从操作系统的角度来说,创建一个进程的代价很高
需要分配很多内核资源
需要将父进程中的内存映像从父进程复制到子进程
2 父子进程间通信复杂
3 支持的并发连接数量有限
tpc ( Thread per Connection) :针对每个连接都新建一个进程去处理连接中的请求
针对ppc中出现的问题1,2 。出现了tpc,但tpc也会引起的两个重要问题
1 线程间会出现互斥和死锁问题
2 多线程相互影响的问题,某个线程出现问题,可能导致整个进程退出
除了引入的新问题,tpc还是存在cpu的线程调度和切换代价问题。因此tpc方案本质上和ppc方案基本类似。在并发几百连接场景下,反而更多的采用ppc的方案,因为ppc方案不会有死锁的风险,也不会有多线程相互影响,稳定性更高
网友评论