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

简介: 基于多进程服务器的优点:   1.由操作系统进行调度,运行比较稳定强壮   2.能够方便地通过操作系统进行监控和管理      例如对每个进程的内存变化状况,甚至某个进程处理什么web请求进行监控.

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

  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进程处理

相关文章
|
15天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
30天前
|
消息中间件 安全 Linux
线程同步与IPC:单进程多线程环境下的选择与权衡
线程同步与IPC:单进程多线程环境下的选择与权衡
58 0
|
1月前
|
消息中间件 存储 算法
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
82 0
|
1月前
|
前端开发 应用服务中间件 nginx
使用Docker快速搭建Web服务器Nginx
本文指导如何使用Docker快速搭建Nginx服务器。首先,通过`docker pull`命令获取Nginx镜像,然后以容器形式运行Nginx并映射端口。通过挂载目录实现本地文件与容器共享,便于自定义网页。使用`docker ps`检查运行状态,访问IP:8088确认部署成功。最后,介绍了停止、删除Nginx容器的命令,强调Docker简化了服务器部署和管理。
50 0
|
2天前
|
Java 数据库连接 数据处理
Python从入门到精通:3.1.2多线程与多进程编程
Python从入门到精通:3.1.2多线程与多进程编程
|
8天前
|
调度 Python
Python多线程、多进程与协程面试题解析
【4月更文挑战第14天】Python并发编程涉及多线程、多进程和协程。面试中,对这些概念的理解和应用是评估候选人的重要标准。本文介绍了它们的基础知识、常见问题和应对策略。多线程在同一进程中并发执行,多进程通过进程间通信实现并发,协程则使用`asyncio`进行轻量级线程控制。面试常遇到的问题包括并发并行混淆、GIL影响多线程性能、进程间通信不当和协程异步IO理解不清。要掌握并发模型,需明确其适用场景,理解GIL、进程间通信和协程调度机制。
28 0
|
8天前
|
应用服务中间件 Linux 开发工具
如何在阿里云服务器快速搭建部署Nginx环境
以下是内容的摘要: 本文档主要介绍了在阿里云上购买和配置服务器的步骤,包括注册阿里云账号、实名认证、选择和购买云服务器、配置安全组、使用Xshell和Xftp进行远程连接和文件传输,以及安装和配置Nginx服务器的过程。在完成这些步骤后,你将能够在服务器上部署和运行自己的网站或应用。
|
13天前
|
弹性计算 应用服务中间件 Linux
阿里云ECS服务器上从零开始搭建nginx服务器
阿里云ECS服务器上从零开始搭建nginx服务器
|
23天前
|
安全 Linux API
Android进程与线程
Android进程与线程
18 0
|
30天前
|
存储 算法 Linux
【Linux 系统标准 进程资源】Linux 创建一个最基本的进程所需的资源分析,以及线程资源与之的差异
【Linux 系统标准 进程资源】Linux 创建一个最基本的进程所需的资源分析,以及线程资源与之的差异
25 0