网站首页 > 技术教程 正文
Nginx进程间的通信机制
概述
linux进程间通讯方式
在linux系统中进程之间的通讯方式有
套接字、共享内存、消息队列、管道、信号
Nginx进程间通讯方式
Nginx选择其中的套接字、共享内存、信号作为
同步master进程和多个worker进程间数据的方式
Nginx互斥锁
在多个进程访问共享资源时
还需要提供一种机制使各个进程有序、安全的访问资源
避免并发访问带来的未知结果
Nginx主要使用了3种同步方式
原子操作、信号量、文件锁
根据操作系统来选择互斥锁的实现方式
不要随意使用信号量来实现互斥锁
每个worker进程都会同时处理千万请求
处理任何一个请求都不应该阻塞当前进程处理后续的其他请求
不要随意使用信号量作为互斥锁
这会使得worker进程在得不到锁时进入睡眠状态
从而导致这个worker进程上的请求被饿死
共享内存
通过mmap或者shmget系统调用在内存中创建一块连续的线性地址空间
对应的通过munmap或者shmdt系统调用释放这块内存
共享内存的好处
当多个进程使用同一块共享内存时
在任何一个进程修改了共享内存中的内容后
其他进程通过访问这段共享内存都能得到修改后的内容
linux通过mmap向应用程序提供共享内存
mmap可以将磁盘文件映射到内存中
直接操作内存时Linux内核将负责同步内存和磁盘文件中的数据
mmap函数的5个入参含义
linux mmap函数
如果flags设置为不使用文件映射方式
则fd和offset参数则没有意义
此时的mmap函数的功能和ngx_shm_alloc的功能几乎完全相同
nginx定义共享内存的结构体
Nginx在Master进程fork出worker子进程后
所有的进程开始使用这块内存中的数据
统计某个时刻下nginx已经处理过的连接状况
作为Web服务器
Nginx具有统计整个服务器Http连接框架的功能
(不是某一个worker进程的状况,
而是所有worker进程连接状况)
共享内存中有一个原子变量
ngx_sta_reading表示正在接收TCP流的连接数
在接受请求的方法中将表示正在接收TCP流连接数的统计变量加1
在处理请求的方法中将该统计变量减1
- 上一篇: 5分钟搞懂nginx进程模型及相关配置
- 下一篇: 快速Nginx入门,看此文即可快速掌握
猜你喜欢
- 2024-10-14 nginx的进程模型与配置(nginx进程数配置)
- 2024-10-14 还在为购买了便宜的服务器却不能用来做更多事而烦恼吗?
- 2024-10-14 快速Nginx入门,看此文即可快速掌握
- 2024-10-14 5分钟搞懂nginx进程模型及相关配置
- 2024-10-14 nginx——优化 Nginx worker 进程数
- 2024-10-03 Nginx 最大连接数(nginx最大连接数设置)
- 2024-10-03 浅谈linux下进程最大数、最大线程数、进程打开的文件数
- 2024-10-03 Nginx凭啥并发数可以达到3w?(nginx10万并发)
- 2024-10-03 Nginx基础配置实例需求分析(nginx配置文件详解带实例)
- 2024-10-03 nginx的进程模型及框架(nginx的进程结构)
你 发表评论:
欢迎- 最近发表
-
- 阿里P8大佬总结的Nacos入门笔记,从安装到进阶小白也能轻松学会
- Linux环境下,Jmeter压力测试的搭建及报错解决方法
- Java 在Word中合并单元格时删除重复值
- 解压缩软件哪个好用?4款大多数人常用的软件~
- Hadoop高可用集群搭建及API调用(hadoop3高可用)
- lombok注解@Data没有toString和getter、setter问题
- Apache Felix介绍(apache fineract)
- Spring Boot官方推荐的Docker镜像编译方式-分层jar包
- Gradle 使用手册(gradle详细教程)
- 字节二面:为什么SpringBoot的 jar可以直接运行?
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)