美文网首页
nginx的进程学习

nginx的进程学习

作者: wwwxi | 来源:发表于2017-11-03 17:58 被阅读0次
    1.进程
        处于动态执行过程中的程序。
        特点:
            动态、并发、独立、异步。
        结构特征:
            程序、数据、进程控制块。
    
        线程区分:
            线程是进程的再划分,更小更细,对系统进行调度开销小;
    
        基本状态: 
            就绪、阻塞、运行三个状态
    
    2.nginx处理请求过程
    
        master(master进程会先建立好需要listen的socket)--------fork生成子进程workers,继承socket(此时workers子进程们都继承了父进程master的所有属性,当然也包括已经建立好的socket,当然不是同一个socket,只是每个进程的这个socket会监控在同一个ip地址与端口,这个在网络协议里面是允许的)------当一个连接进入,产生惊群现象。一般来说,当一个连接进来后,所有在accept在这个socket上面的进程,都会收到通知,而只有一个进程可以accept这个连接,其它的则accept失败。
    
    3.nginx配置服务器进程
        
        推荐配置一个cpu对应 一个进程
        原因:
            nginx是用一个主进程开启然后管理一群小的进程来处理连接,高并发是通过小进程循环处理来实现的,不需要太多进程,如果进程偏多,会导致进程相互竞争cpu资源,带来不必要的上下文切换。
        
        apahce:多进程、线程   适用于cpu密集型,
         
        nginx:事件驱动(本质io事件) 适用于io密集型
    
        ps:nginx可以是多进程+事件驱动模式
    
        例如  mysql数据计算需要cpu密集型   反向代里需要io密集型
    
    4.nginx配置多个进程绑定cpu
        worker_processes 3;//配置进程数3
        worker_cpu_affinity 0010 0100 1000;//绑定相应的cpu
    

    相关文章

      网友评论

          本文标题:nginx的进程学习

          本文链接:https://www.haomeiwen.com/subject/woztmxtx.html