美文网首页
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