基于多进程和基于多线程服务器的优缺点及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进程处理

相关文章
|
2月前
|
安全 Java 调度
Java编程时多线程操作单核服务器可以不加锁吗?
Java编程时多线程操作单核服务器可以不加锁吗?
46 2
|
10天前
|
并行计算 数据处理 调度
Python中的并发编程:探索多线程与多进程的奥秘####
本文深入探讨了Python中并发编程的两种主要方式——多线程与多进程,通过对比分析它们的工作原理、适用场景及性能差异,揭示了在不同应用需求下如何合理选择并发模型。文章首先简述了并发编程的基本概念,随后详细阐述了Python中多线程与多进程的实现机制,包括GIL(全局解释器锁)对多线程的影响以及多进程的独立内存空间特性。最后,通过实例演示了如何在Python项目中有效利用多线程和多进程提升程序性能。 ####
|
29天前
|
Python
Python中的多线程与多进程
本文将探讨Python中多线程和多进程的基本概念、使用场景以及实现方式。通过对比分析,我们将了解何时使用多线程或多进程更为合适,并提供一些实用的代码示例来帮助读者更好地理解这两种并发编程技术。
|
2月前
|
数据采集 Linux 调度
Python之多线程与多进程
Python之多线程与多进程
|
3月前
|
运维 算法 调度
深入理解操作系统:进程调度与优先级自动化运维:使用Ansible实现服务器集群管理
【8月更文挑战第27天】在操作系统的众多奥秘中,进程调度无疑是一个既简单又复杂的主题。它就像是交响乐团中的指挥,协调着每一个音符,确保乐曲和谐而有序地进行。本文将带领读者走进进程调度的世界,探索其背后的原理和实现,同时通过代码示例揭示其精妙之处。让我们一起揭开进程调度的神秘面纱,理解它在操作系统中的重要性。
|
3月前
|
负载均衡 监控 应用服务中间件
在Linux中,lvs/nginx/haproxy 优缺点?
在Linux中,lvs/nginx/haproxy 优缺点?
|
3月前
|
Ubuntu 应用服务中间件 Linux
在Linux中,如何配置Web服务器(如Apache或Nginx)?
在Linux中,如何配置Web服务器(如Apache或Nginx)?
|
3月前
|
Java
Java使用FileInputStream&&FileOutputStream模拟客户端向服务器端上传文件(单线程)
Java使用FileInputStream&&FileOutputStream模拟客户端向服务器端上传文件(单线程)
84 1
|
3月前
|
负载均衡 应用服务中间件 Linux
"揭晓nginx的神秘力量:如何实现反向代理与负载均衡,拯救服务器于水火?"
【8月更文挑战第20天】在Linux环境下,nginx作为高性能HTTP服务器与反向代理工具,在网站优化及服务器负载均衡中扮演重要角色。本文通过电商平台案例,解析nginx如何解决服务器压力大、访问慢的问题。首先介绍反向代理原理,即客户端请求经由代理服务器转发至内部服务器,隐藏真实服务器地址;并给出配置示例。接着讲解负载均衡原理,通过将请求分发到多个服务器来分散负载,同样附有配置实例。实践表明,采用nginx后,不仅服务器压力得到缓解,还提升了访问速度与系统稳定性。
86 3
|
3月前
|
应用服务中间件 Linux 网络安全
在Linux中,如何配置Apache或Nginx Web服务器?
在Linux中,如何配置Apache或Nginx Web服务器?
下一篇
无影云桌面