Nginx笔记-Nginx中进程结构及使用Linux信号量管理
首先是Apache和Nginx的区别(这里只提Nginx的好处)
Apache处理请求性能低。
Apache:一个进程处理一个请求,阻塞式;
Nginx:一个进程处理多个请求,非阻塞式;
Nginx的应用场景
Nginx只能处理静态资源,动态资源还得反向代理到应用服务器上。
下面是Nginx处理请求的过程:
Nginx有点及特点
热部署、平滑升级、开源及二次开发、高并发高性能、扩展性好、异步非阻塞的事件驱动模型
Nginx是多进程结构:
主进程Master Process管理如下几个进程:
CM(Cacah Manager)、CL(Cacah Loader)、Worker Process(这个在一般在配置文件中为auto,会根据CPU核数自己生成)。
Master Process有进程管理的功能,会把挂掉的进程拉起来,所以如果要改源码扩展尽可能不要修改Master Process。
Cacah Loader用于加载缓存
Cacah Manager用于管理缓存
而正在存储缓存的地方是在worker process里面。所有子进程都是用共享内存的方式进行通信。
下面是Linux的信号量管理机制。
最关键的就是kill关键字:
一共有64个指令,要弄清楚如下几个:
Kill -17 $PID #父子进程通信的信号量,子进程挂了,会给父进程发信号
Kill -3 $PID #将应用的运行情况dump下来。由于可以吧所有线程当前运行到哪里的情况输出
Kill -15 $PID #普通的Kill,程序退出,如果卡死,是杀不了的
Kill -9 $PID #不管在干嘛,阻塞,运行都kill
Kill -1 $PID #重新加载配置文件
利用信号量进行管理Nginx
一般不建议直接对worker进程进行管理,而是使用manager去管理
nignx是事件绑定的,他的worker子进程一般是你电脑有几颗cpu就给你多少个
在配置文件里面有个worker_processes一般是auto就是nginx自己去检测的。
如下所示:
当前Nginx只有一个worker process,原因是我这台只有一个cpu
可以通过修改配置文件,来改变,如下:
改成4,然后进行重载配置文件
这里有两条命令:
./nginx -reload
kill -1 xxxx
就可以看到:
有4个worker process了。
这里如果要改源码或者其他的操作,一般都是对worker process线程进行。
另外是./nginx -h为help
Nginx笔记-Nginx中进程结构及使用Linux信号量管理相关推荐
- linux大多数进程都是sleep,Linux电源管理(5)_Hibernate和Sleep功能介绍
Linux电源管理(5)_Hibernate和Sleep功能介绍 作者:wowo 发布于:2014-6-10 16:11 分类:电源管理子系统 1. 前言 Hibernate和Sleep两个功能是Li ...
- 在linux中进程表示的是,Linux进程的表示
2.linux进程相关的数据结构 首先来看内核描述进程所用的数据结构.在Linux内核0.11版本中,进程数据结构的定义在sched.h文件中,定义如下 struct task_struct { /* ...
- linux中进程的控制总结,Linux中的进程控制
我们知道,程序就是一个包含可执行代码的文件,是一个静态的文件. 进程就是可执行程序的一次执行过程,是一个动态的概念,在Linux系统中所有运行的东西都可以称之为进程. 进程的基本状态三种:运行态.就绪 ...
- linux 进程装入 物理内存 页表,linux内存管理解析----linux物理,线性内存布局及页表的初始化...
主要议题: 1分页,分段模式及实模式 2Linux分页 3linux内存线性地址空间布局及物理内存空间布局 4linux页表初始化及代码解析 1.1.1内存寻址和保护模式 在X86平台上,内存控制单元 ...
- linux中system清屏命令,Linux磁盘管理命令
语法:df [选项] 说明:df命令可显示所有文件系统对i节点和磁盘块的使用情况. 该命令各个选项的含义如下: -a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件 ...
- linux 进程代码,怎样从Linux终端管理进程:10个你必须知道的命令
Linux终端有一系列有用的命令.它们可以显示正在运行的进程.杀死进程和改变进程的优先级.本文列举了一些经典传统的命令和一些有用新颖的命令.本文提到的命令会实现某个单一功能.它们可以结合起来--这也是 ...
- Nginx服务器--Nginx服务器的使用笔记
1.Nginx简介 Nginx("engine x") 一个具有高性能的[HTTP]和[反向代理]的[WEB服务器],同时它也是一个[POP3/SMTP/IMAP代理服务器],由伊 ...
- 【Linux 内核】进程管理 ( Linux 中进程的 CPU 资源调度 | 进程生命周期 | 创建状态 | 就绪状态 | 执行状态 | 阻塞状态 | 终止状态 | 进程生命周期之间的转换 )
文章目录 一.Linux 中进程的 CPU 资源调度 二.进程生命周期 三.进程生命周期之间的转换 一.Linux 中进程的 CPU 资源调度 Linux 操作系统 是 多任务系统 , 可以 同时运行 ...
- 【Linux 内核】进程管理 ( 进程特殊形式 | 内核线程 | 用户线程 | C 标准库与 Linux 内核中进程相关概念 | Linux 查看进程命令及输出字段解析 )
文章目录 一.进程特殊形式 ( 内核线程 | 用户线程 ) 二.C 标准库与 Linux 内核中进程相关概念 三.Linux 查看进程命令及输出字段解析 一.进程特殊形式 ( 内核线程 | 用户线程 ...
最新文章
- 侧边栏qq客服对话显示
- oracle迁移mysql视图中函数问题,mysql中to_char自定义函数。
- 52. N-Queens II N皇后II
- RabbitMQ使用手册
- Mycat对于导入和扩容迁移性能压测
- 大学生应当趁早谋划未来(二)--给表弟的建议
- CSS彻底研究(1)
- 图像处理与计算机视觉的论文创新点总结(二)
- abaqus2018安装教程win10_win10怎么安装abaqus v6.12_win10系统abaqus v6.12安装详细教程
- 怎么把知网caj变成word
- 计算机系统日期修改吗,电脑系统时间如何修改,教你电脑系统时间如何修改
- 经典对抗攻击Deepfool原理详解与代码解读
- MATLAB添加噪声
- 报表服务器组件,开发者手册概述:Power BI 报表服务器
- 全国各地疫苗接种数据进展
- 劫持Linux idle进程做点自己的计算任务
- 【ExpandTabView】Android 仿大众,美团下拉菜单ExpandTabView
- 使用Spring实现Redis的发布/订阅功能
- shell里面的PATH
- 七月在线机器学习单选刷(二)