前言:
如今姐妹们对“nginx内存大小”可能比较讲究,咱们都想要分析一些“nginx内存大小”的相关资讯。那么小编同时在网络上收集了一些关于“nginx内存大小””的相关内容,希望小伙伴们能喜欢,各位老铁们一起来学习一下吧!首先什么是内存池,为什么会有内存池,内存池解决了什么问题??
在nginx中每个http请求和每个tcp、udp都会去创建一个内存池,以后在处理过程中所有用到的内存都是从内存池中申请的;Nginx的内存池区分大内存块和小内存块,以一个内存页面为准,如果小于一个内存页面(getpagesize)则是小内存块,从内存池中直接申请,否则直接调用malloc去申请内存块;在释放内存的时候,nginx没有专门提供针对释放小块内存的函数,小块内存会在ngx_destory_pool 和 ngx_reset_pool的时候一并释放。
数据结构:
申请后的内存分配关系图:
内存池中维护两个链表,一个大块,一个小块
提前创建好后,缓解了,下次分配的时间,只需要简单的判断就可取出想要的内存块
调用posix_memalign( )成功时会返回size字节的动态内存,并且这块内存的地址是alignment的倍数。
参数alignment必须是2的幂,还是void指针的大小的倍数。返回的内存块的地址放在了memptr里面,函数返回值是0.
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #nginx内存大小