[nginx] nginx源码分析–内存管理

  1. nginx的内存,都是内存池管理,创建一个内存池就malloc一块内存出来.

  2. 两个重要的地方会新建内存池, 一个新连接建立的时候, 一个是request创建的时候.

  3. 在内存池里申请内存的时候,就是一块挨着一块的按顺序用. 这种叫small. 如果比内存池的size还大的,就malloc,然后把它索引到large链表里,

large的链表头结构用small的方式申请.

  1. 由于频繁的申请, 每一个connect都要malloc, 可能会有性能问题. 这时候改进法案就是使用jemalloc或者tcmalloc.

另外, nginx这个内存池的设计初衷是为了防止泄露,连接结束时, 所以相关资源一下释放掉. 而且, nignx的人认为实时的malloc多性能影响不大,

参考这个讨论: https://www.ruby-forum.com/t/memory-pool/240348

数据结构, 见下图:

[nginx] nginx源码分析--内存管理

Original: https://www.cnblogs.com/hugetong/p/14714780.html
Author: toong
Title: [nginx] nginx源码分析–内存管理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/543023/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • SpringCloudAlibaba项目之Seata分布式事务

    SpringCloudAlibaba随笔目录 一、SpringCloudAlibaba项目之父工程搭建 二、 SpringCloudAlibaba项目之Nacos搭建及服务注册 三…

    Java 2023年6月5日
    0104
  • 分页查询

    1.分页概念 分页查询则是在页面上将本来很多的数据分段显示,每页显示用户自定义的行数。可提高用户体验度,同时减少一次性加载,内存溢出风险。 1.1.真分页 每次翻页从数据库中查询数…

    Java 2023年6月15日
    075
  • Java SPI机制,你了解过吗?

    Life moves pretty fast,if you don’t stop and look around once in a while,you will mi…

    Java 2023年6月5日
    0109
  • SpringSecurity之Oauth2介绍

    Oauth2认证的简单介绍 简介 第三方认证技术方案最主要是解决 认证协议的通用标准问题,因为要实现跨系统认证,各系统之间要遵循一定的接口协议。 OAUTH协议为用户资源的授权提供…

    Java 2023年6月5日
    0128
  • Spring Boot 入门(九)使用RabbitMQ

    maven <dependency> <groupId>org.springframework.bootgroupId> <artifactId…

    Java 2023年6月5日
    0113
  • JAVA第一课(Hello World)—-下载配置Java环境

    一、前期准备工作 1、下载Java(推荐下载JDK8) (1)百度搜索JDK8,找到下载地址(注册一下Oracle的账号就能直接下载) (2)配置环境 此电脑→属性 →高级系统设置…

    Java 2023年6月6日
    083
  • 【Spring Boot】 Spring Boot之Hystrix使用介绍

    { "annotations": { "list": [ { "builtIn": 1, "datasourc…

    Java 2023年5月29日
    072
  • Nginx模块开发入门

    Nginx配置文件基本结构 配置文件可以看做是Nginx的灵魂,Nginx服务在启动时会读入配置文件,而后续几乎一切动作行为都是按照配置文件中的指令进行的,因此如果将Nginx本身…

    Java 2023年5月30日
    073
  • Spring源码学习笔记7——Spring bean的初始化

    一丶前言 上篇中我们了解了Spring bean的实例化——存在方法覆盖的使用CGLIB动态代理生成子类,反之反射调用构造函数。实例化后bean中的字段都是默认值,接下来就是对be…

    Java 2023年6月14日
    060
  • 【maven】Dependency “XXX”not found

    父工程pom文件中依赖报红, <dependencymanagement></dependencymanagement> 中依赖报红属于正常现象,在子工程继…

    Java 2023年6月15日
    063
  • SpringMVC转发和重定向区别!

    在servlet中,转发和重定向是由request和response完成的。两者之间的区别请看我之前的文章。那么在springMVC中是如何完成的呢? /转发/ @RequestM…

    Java 2023年6月9日
    0181
  • Hibernate 离线对象构建通用查询

    1.业务场景 当下主系统衍生子业务系统已经成为常态,像京东的物流和金融,阿里的支付宝和淘宝。 子业务系统需要对主系统的资源进行访问,这里的资源我具体化为数据库数据,但日常业务中可能…

    Java 2023年5月29日
    071
  • 别再重复造轮子了,几个值得应用到项目中的 Java 开源库送给你

    我是风筝,公众号「古时的风筝」。文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在里面。公众号回复『666』获取高清大图。 风筝我作为一…

    Java 2023年5月29日
    063
  • 小程序开屏广告demo

    相信在座的各位都有见过大部分的应用打开的时候都会有个全屏的广告。 但是小程序的会比较少一点,因为小程序打开加载的时候已经需要消耗不少时间了,所以基本都不会去做这个,影响用户的体验。…

    Java 2023年6月16日
    0115
  • 微信二维码支付

    准备工作 概述:微信扫码支付是商户系统按微信支付协议生成支付二维码,用户再用微信 &#x626B;&#x4E00;&#x626B;完成支付的模式。该模式适用…

    Java 2023年6月13日
    095
  • 分布式任务调度平台XXL-JOB安装

    安装xxl-job-admin 1.拉取镜像 #拉取镜像 docker pull xuxueli/xxl-job-admin:2.3.0 #新建挂载目录 mkdir /usr/lo…

    Java 2023年6月15日
    091
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球