基于多进程和基于多线程服务器的优缺点及nginx服务器的启动过程

基于多进程服务器的优点:

  1.由操作系统进行调度,运行比较稳定强壮

  2.能够方便地通过操作系统进行监控和管理

     例如对每个进程的内存变化状况,甚至某个进程处理什么web请求进行监控.同时可以通过给进程发送信号量,实现对应用的各种管理

  3.隔离性好

     一个进程出现问题只有杀掉它重启就可以,不影响整体服务的可用性

     很容易实现在线热部署和无缝升级

      不需要考虑线程安全问题

   4.充分利用多核cpu,实现并行处理

 

基于多进程服务器的缺点:

   1.内存消耗比较大,每个进程都独立加载完整的应用环境

   2.cpu消耗偏高,高并发下,进程之间频繁进行上下文切换,需要大量的内存换页操作

   3.很低的io并发处理能力,只适合处理短请求,不适合处理长请求

 

基于多线程服务器的优点:

    1.对内存的消耗小

       线程之间共享整个应用环境,每个线程栈都比较小,一般不到1M

    2.cpu上下文切换比较快

    3.io的并发能力强

        javaVM可以轻松维护几百个并发线程切换开销,远高于多进程几十个并发进程的处理能力

    4.有效利用多核cpu进行并行计算

 

基于多线程服务器的缺点:

    1.不方便操作系统的管理

    2.VM对内存的管理要求非常高,GC的策略会影响多线程并发能力和系统吞吐量

    3.由于存在对共享资源操作,一旦出现线程"死锁"和线程阻塞,很容易使整个应用失去可用性

 

nginx的重启过程:

    1.主进程重新加载应用环境

    2.启动新的woker进程,同时向老的woker进程发送消息

    3.老的woker进程收到消息后不再处理新的请求,将之前收到的请求处理完毕后退出

    4.主进程收到新的请求后就交给新的woker进程处理

时间: 2024-10-11 01:11:01

基于多进程和基于多线程服务器的优缺点及nginx服务器的启动过程的相关文章

阿里云服务器ECS(Ubuntu)搭建nginx服务器 详细步骤教程

假设阿里云服务器的ip是192.168.1.10(读者需要换成自己的ip地址),并且没有选择任何安装包.现在ECS是完全空的,除了必须的Linux系统外,其他什么都没有.还有一点,本文选择的是Ubuntu Linux 14.04 64位版本.Linux比较节省内存,因为并没有UI部分,纯控制台操作. 本文只安装nginx服务器,后面的文章会配置其他环节,如PHP.Java.MySQL等. 在安装之前需要完成如下两项工作. 找一个工具上传文件(如nginx安装包) 连接到服务器的Console上,

阿里云服务器部署应用环境(nginx服务器)

阿里云服务器的配置 1.打开阿里云官网,登录上自己的账号,点击控制台 2.点击左侧的云服务器ECS 3.点击实例 4.选择您所购买的服务器的区域,选择你要配置的服务器,点击远程连接. 5.输入管理终端密码.(如果是第一次登录,系统会告诉你初始密码) 6.登录云服务器        1.输入登录名(一般为root)        2.输入密码(购买服务器时,自己设置的)        3.按enter键 登录 7.开始配置 1. 安装及启动nginx 输入yum install nginx命令进行

Nginx服务器中为网站或目录添加认证密码的配置详解_nginx

nginx可以为网站或目录甚至特定的文件设置密码认证.密码必须是crypt加密的.可以用apache的htpasswd来创建密码. 格式为: htpasswd -b -c site_pass username password site_pass为密码文件.放在同nginx配置文件同一目录下,当然你也可以放在其它目录下,那在nginx的配置文件中就要写明绝对地址或相对当前目录的地址. 如果你输入htpasswd命令提示没有找到命令时,你需要安装httpd.如果是centos可以执行如下来安装,

我的Android进阶之旅------>Android基于HTTP协议的多线程断点下载器的实现

一.首先写这篇文章之前,要了解实现该Android多线程断点下载器的几个知识点  1.多线程下载的原理,如下图所示 注意:由于Android移动设备和PC机的处理器还是不能相比,所以开辟的子线程建议不要多于5条.当然现在某些高端机子的处理器能力比较强了,就可以多开辟几条子线程. 2.为了实现断点下载,采用数据库方式记录下载的进度,这样当你将该应用退出后,下次点击下载的时候,程序会去查看该下载链接是否存在下载记录,如果存在下载记录就会判断下载的进度,如何从上次下载的进度继续开始下载. 3.特别注意

甲骨文推出基于SPARC T4处理器的新Netra SPARC T-系列服务器

甲骨文日前宣布推出基于SPARC T4处理器的新Netra SPARC T-系列服务器,这是为满足http://www.aliyun.com/zixun/aggregation/32277.html">通信网络基础设施的应用负载需求而设计的第一款处理器. 新的Oracle Netra T-系列服务器配备有业界第一款云操作系统Oracle Solaris 11,是下一代电信行业的理想选择.它能为4G网络基础设施和基于云的部署提供所需的性能.可扩展性和效率.这些系统专为希望增加容量.提高安全性

基于Java Socket的自定义协议,实现Android与服务器的长连接(一)

一.基础知识准备 在正式给大家介绍自定义协议之前,我们先对网络传输和协议解析的相关知识点做一个基本的介绍,尽管这些知识点我们在学校里学过,但难免会有所遗忘,这里先做一个简单的介绍,以便对后文的内容理解更加顺畅. 1. 网络七层协议 OSI的7层从上到下分别是:7 应用层. 6 表示层. 5 会话层. 4 传输层. 3 网络层. 2 数据链路层. 1 物理层;其中高层(即7.6.5.4层)定义了应用程序的功能,下面3层(即3.2.1层)主要面向通过网络的端到端的数据流.应用层常见的协议有:HTTP

spring开发,基于注解和基于配置,都有什么优缺点

问题描述 1.spring开发,基于注解和基于配置,都有什么优缺点?2.现在哪有spring3 mvc例子,要基于xml配置文件的,官方包也没有例子,网上好多都代码不全,运行不了,我想学一下,谁手上有请帮忙Email:aaron3323@163.com 解决方案 呵呵 我公司的项目在用Spring 注释配置我也在学习 你看看这篇文章吧.还不错.http://www.ibm.com/developerworks/cn/java/j-lo-spring25-ioc/

[Docker系列·2] 搭建基于Docker的Nginx服务器

docker命令别名 ~/.bashrc # .bashrc alias d="sudo docker" docker的nginx工作目录 /home/erichan/d/nginx docker的Dockerfile # Version: 0.0.1 FROM feuyeux/ssd MAINTAINER Eric Han "feuyeux@gmail.com" RUN apt-get update RUN apt-get -yq install nginx RU

IIS启用Gzip的方法与优缺点分析_win服务器

现代的浏览器IE6和Firefox都支持客户端Gzip,也就是说,在服务器上的网页,传输之前,先使用Gzip压缩再传输给客户端,客户端接收之后由浏览器解压显示,这样虽然稍微占用了一些服务器和客户端的CPU,但是换来的是更高的带宽利用率.对于纯文本来讲,压缩率是相当可观的.如果每个用户节约50%的带宽,那么你租用来的那点带宽就可以服务多一倍的客户了. IIS6已经内建了Gzip压缩的支持,可惜,没有设置更好的管理界面.所以要打开这个选项,还要费些功夫. 首先,如果你需要压缩静态文件(HTML),需