Web服务器总的来说提供服务的方式有三种:
多进程方式
多线程的方式
异步方式
其中效率最高的是异步的方式,最稳定的是多进程方式,占用资源较少的是多线程的方式。
1.多进程
此种架构方式中,web服务器生成多个进程并行处理多个用户请求,进程可以按需或事先生成。有的web服务器应用程序为每个用户请求生成一个单独的进程来进行响应,不过,一旦并发请求数量达到成千上万时,多个同时运行的进程将会消耗大量的系统资源。(即每个进程只能响应一个请求或多个进程对应多个请求)
优点:
最大的优势就在于稳定性,一个进程出错不会影响其它进程。如,服务器同时连接100个请求对就的是100个进程,其中一个进程出错,只会杀死一个进程,还有99个进程继续响应用户请求。
每个进程响应一个请求
缺点:
进程量大,进程切换次数过多,导致CPU资源使用效率低
每个进程的地址空间是独立的,很多空间中重复的数据,所以内存使用效率低
进程切换由于内核完成,占用CPU资源
2.多线程
在多线程方式中,每个线程来响应一下请求,由于线程之间共享进程的数据,所以线程的开销较小,性能就会提高。
优点:
线程间共享进程数据
每个线程响应一个请求
线程切换不可避免(切换量级比较轻量)
同一进程的线程可以共享进程的诸多资源,比如打开的文件
对内存的需求较之进程有很大下降
读可以共享,写不可以共享
缺点:
线程快速切换时会带来线程抖动
多线程会导致服务器不稳定
3.异步方式
一个进程或线程响应多个请求,不需要任何额外开销的,性能最高,占用资源最少。但也有问题一但进程或线程出错就会导致整个服务器的宕机。 |
|