
Nginx
nice_wen
理想与情怀
展开
-
Nginx内存池管理
由于本人才疏学浅,本文难免存在遗漏之处,欢迎大家留言指正,本人将感激不尽。Nginx使用内存池对内存进行管理,提高内存管理效率。对于小块内存,直接从已分配好的内存池中获取(返回指针);对于大块内存,直接调用malloc申请内存,然后将大块内存挂在内存池上进行管理(链表形式)。对于内存的申请,Nginx还做了一些优化,比如在某一块内存池上申请小内存失败次数超过四次时,直接跳过该内存池,后续将不在...原创 2019-06-05 10:51:57 · 379 阅读 · 0 评论 -
nginx源码分析—reuseport的使用
本文主要介绍nginx中reuseport的使用,文中代码较多,阅读本文需要读者对nginx的事件模块以及listen配置过程有了解。由于nginx比较复杂,且作者对nginx的理解有限,文章难免存在疏忽之处,敬请指出!一、reuseport的配置及解析reuseport通过listen指令来配置,配置如下:listen 443 reuseport;listen指令由ngx_http_...原创 2019-06-13 21:08:35 · 10500 阅读 · 0 评论 -
Nginx源码分析—套接字继承
本文主要简要介绍Nginx中关于套接字的继承,这里提到的继承不是指worker进程继承master进程的监听套接字,而是指启动master进程时,master继承父进程的监听套接字。继承的方式1、master进程在main函数中调用ngx_add_inherited_sockets函数判断是否需要继承父进程的监听套接字。若没有需继承的套接字则返回,否则继续。2、ngx_add_inherit...原创 2019-06-04 16:42:36 · 510 阅读 · 0 评论 -
nginx进程间传递文件描述符
由于笔者才疏学浅,本文难免存在遗漏之处,欢迎大家留言指正。起初知道进程间可以传递文件描述符的时候就很好奇是怎么做到的,最近查阅了一些文章,此处做个笔记,方便日后回顾。文中结合nginx代码,具体分析一下如何在不同进程之间传递文件描述符。一、浅谈sendmsg和recvmsg由于nginx中通过sendmsg和recvmsg的辅助信息来传递文件描述符,此处先简要介绍这两个接口。1、函数原型...原创 2019-08-03 17:17:36 · 1073 阅读 · 0 评论 -
epoll惊群测试
一、udp惊群测试1、模型2、代码#include <stdio.h>#include <stdlib.h>#include <sys/socket.h>#include <sys/epoll.h>#include <sys/types.h>#include <sys/wait.h>#include <...原创 2019-08-16 19:27:00 · 380 阅读 · 0 评论