百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Nginx之连接池_nginx 长连接 连接复用

off999 2025-02-16 22:23 29 浏览 0 评论

我们知道Nginx利用连接池来增加它对资源的利用率。

下面我们一起来看看Nginx是如何使用连接池的。从上一节模块开始 已经慢慢会接触一些Nginx的源码部分来。

每个worker进程都有一个独立的ngx_cycle_t 这种数据结构。

这里面我们先来了解3个数组字段,分别是connections,read_events,write_envets。

这里的connections就是连接池。

我们在官网看到默认值说512,这不仅是客户端的连接。也就是说在我们用Nginx做反向代理的时候,每个客户端会占用2个连接。

https://nginx.org/en/docs/ngx_core_module.html#worker_connections




每个connection又有自己的读写事件,read_events和write_envets的数组大小和connections是一致的。当我们把连接数开得越大的时候占用的内存就会越大,那每个链接到底占用多少内存呢?这就需要看下 ngx_connection_s 这个结构体了 在ngx_connection.h,在64位os中,这个结构体约占用232个字节。

struct czzz {
    void               *data;
    ngx_event_t        *read; 
    ngx_event_t        *write;
    ngx_socket_t        fd;
    ngx_recv_pt         recv;
    ngx_send_pt         send; 
    ngx_recv_chain_pt   recv_chain;
    ngx_send_chain_pt   send_chain;
    ngx_listening_t    *listening;
    off_t               sent; 
    ngx_log_t          *log;
    ngx_pool_t         *pool; 
    int                 type;
    ……
};

read/write:分别是读写事件。

recv/send:抽象出os的底层方法,如何接收/发送

sent: 在这个连接上已经发送了多少字节。

pool:当前使用的内存池。


这里还有两个事件 ngx_event_t是在ngx_event.h里 在64位os中,这个结构体约占用96个字节。

struct ngx_event_s {
    void        *data;
    int         available;
    ngx_event_handler_pt  handler;
    ngx_uint_t  index;
    ngx_log_t   *log;
    ngx_rbtree_node_t   timer; 
    ngx_queue_t queue;
};

由于每个链接需要有2个事件,所以一个链接起码需要232+96+96 = 424个字节。

这里的handler:是事件的回调方法。第三方模块会把这里设置成自己的实现。

timer:当我们对http请求做读超时/写超时定时器设置的时候其实是在操作这个timer。基于红黑树实现的。

queue:当多个事件形成队列的时候会用到这个字段。


回顾:今天我们一起认识了ngx_connection_s和ngx_event_s结构体,并知道了它们之间是什么样的关联关系。1个连接对应2个事件都会消耗一定的内存需要我们注意内存的使用。当我们需要高并发时,我们需要把connections的数目配置到足够大。

相关推荐

高清windows免费版观看(高清windows免费版观看网站)

方法一:1、右键单击开始菜单----运行2、在运行对话框中输入:devmgmt.msc,展开:显卡适配器,右击所列的显卡适配器,点击卸载。3、卸载后重新安装兼容Win10的显卡驱动,建议去官方下载...

h3c官网(H3C官网登录账号)

1H3C防火墙官网是存在的,可以通过搜索引擎或输入官方网址进行访问。2H3C防火墙官网提供了产品信息、技术支持、解决方案和服务支持等各种资源,帮助用户全面了解和使用H3C防火墙产品。同时,还有在线...

系统流小说下载(系统流小说大全完本)

全能奇才、末世之兑换高手、穿越之兑换无敌、:重生之我能升级、重生之模拟游戏、超级物品、戒指也疯狂、全职天才、疯狂道具、星戒、超级游戏分身、重生之神才风流、全能闲人、逆天作弊器之超级游戏、宅男之游戏人生...

win7网络设置初始化(win7网络设置初始化方法)

1、首先在操作系统桌面上,点击左下角开始按钮选择控制面板选项进入。2、进入控制面板主界面,点击查看方式下拉按钮选择大图标进入。3、切换至所有控制面板项,点击恢复选项进入。4、进入恢复界面,点击高级恢复...

家用笔记本电脑哪个牌子实惠又好用

在用机械革命s1pro键盘不好用,录音功能不好用,其它还行吧一分价钱一分货清华同方品牌的笔记本最便宜,然14最大的特点就是便宜,仅售3000元,属于新品笔记本中的超低价位。屏幕方面,熟悉的1080p...

免费使用的数据恢复软件(真正的免费的数据恢复软件)

1、在误删除数据后,无论是硬盘、U盘、SD卡还是其他存储设备,最好马上停止写入新的数据,保持现状,然后找适当的数据恢复软件进行恢复。请勿使用非专业软件,以免导致文件彻底无法恢复!  2、在误删除数据后...

感冒流鼻涕怎么办最简单方法

由于受凉感冒引起鼻腔腺体分泌旺盛导致鼻涕增多,建议在医生指导下使用玉屏风颗粒口服治疗促进恢复正常,可以进食鼻腔腺体分泌,改善流鼻涕,打喷嚏症状,另外注意保暖,不要进食辛辣刺激性食物,避免疲劳,多食用容...

tp路由器无线设置最佳参数(tp-link路由器网络参数怎么设置)

1,在浏览器中输入192.168.1.1,进入后台管理,输入用户名和密码登录。2,先连接外网。在左边选择“网络参数”下的“WAN口设置”。3,并在右边选择一种网络方式,如“PPPOE”并输入帐号和密码...

amd的cpu天梯图(amd全系列cpu天梯图)

低压版最高端是“FX-7500”,四核心,4MB二级缓存,CPU频率为2.1-3.3GHz,RadeonR7GPU六个计算单元384个流处理器,频率496-553MHz,内存支持DDR3-1600...

免费恢复微信好友软件(免费恢复微信好友软件哪个好用)

1.不存在免费的微信找回删除好友软件。2.因为微信的好友删除是一种数据操作,需要访问微信服务器上的数据,而微信官方并没有提供找回删除好友的功能,所以任何软件都无法实现这个功能。此外,使用未知来源的...

台式电脑突然断电后无法开机

首先,突然断电导致电脑不能正常开机,并不一定是系统故障,根据以下的方法进行排除。1、在断开电源的前提条件下,打开主机箱侧盖将内存条取下来,更换内存安装插槽的位置。2、找到主板电池,并且将主板电池取下来...

网易邮箱163登录下载(网易邮箱163登录下载不了)

手机163的登录入口163邮箱官网入口是;https://smart.mail.163.com/login.htm网易邮箱注册方法;1在浏览器搜索“网易邮箱”。2进入网易邮箱官网https://sma...

免费ppt模板下载网站(免费ppt模板下载网站名)
  • 免费ppt模板下载网站(免费ppt模板下载网站名)
  • 免费ppt模板下载网站(免费ppt模板下载网站名)
  • 免费ppt模板下载网站(免费ppt模板下载网站名)
  • 免费ppt模板下载网站(免费ppt模板下载网站名)
hotmail邮箱怎么样

微软关闭的是中国大陆地区以外的WindowsLiveMessenger客户端服务和邮箱服务完全无关.所以不止中国大陆,全球的hotmail都可以用的.hotmail邮箱目前还是可以用的,不过...

手机怎么连路由器上网设置(用手机连接路由器设置)

手机无线路由器的桥接方法如下1、在确保手机已连接到当前WIFI网络的情况下,打开手机设置。然后在设置页面中,点击“移动网络”进入。2、在移动网络设置界面,点击“移动网络共享”进入。3、在移动网络共享设...

取消回复欢迎 发表评论: