nginx--基础--18--内存池

nginx–基础–18–内存池


1、架构

在这里插入图片描述

  1. 提前分配内存,不等到需要内存的时候才分配
  2. 减少内存碎片
    1. 每次连接使用小内存的时候,它会使用next指针将他们全部连接起来,再次使用内存很少的时候,再分配一小块内存,这些内存会是连续的,这样就大大的减少了内存碎片。
  3. 大块内存通过alloc来开辟内存空间的

2、对nginx有什么好处呢?

每当有一个tcp连接的时候,这个tcp连接可能存在着很多的http请求,也就是说有http的请求连接一直没有关闭。

  1. 每一次http的请求都会分配内存,如果没有内存池,需要频繁的分配,频繁的分配内存是需要付出代价的。当时有内存次的话,一个tcp连接就只会分配一次,在这个tcp里面的http都会共用分配内存。 只要这个tcp连接不关闭,这内存我永远不需要释放,直到连接关闭的时候才会释放。

3、分类

3.1、请求内存池(request_pool_size)

  1. 默认:4k

  2. 需要保存大量的上下文的信息,如

    1. 所有读取到的URL或者head信息,需要一直保存着。
    2. URL通常都比较长的,所以我们需要有4k的大小。
  3. 官方文档说,它对性能的影响很小,如果你的URL通常都特别长的那种,可以考虑把这调整大些。如果你的URL和head很小也可以调小点,这样也会提高点性能,能做更大的并发量。

3.2、连接内存池(connection_pool_size)

  1. 默认:256
  2. 当我们分配的内存超过了这个预分配大小的时候,它会继续分配的内存。
  3. 用于减少内核对于小块内存的分配次数
    1. 配置太大会增加服务器内存消耗,太小会增加服务器内存分配次数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值