自己的第一篇博客,慢慢积累,每天成长一点点,离成功又近了一步!
Nginx内存数据结构:
struct ngx_pool_s {
ngx_pool_data_t d;
size_t max;
ngx_pool_t *current; //指向当前或本内存池
ngx_chain_t *chain; //该指针挂接一个ngx_chain_t结构
ngx_pool_large_t *large;
ngx_pool_cleanup_t *cleanup;
ngx_log_t *log; //出错时,日志记录
};
struct ngx_pool_large_s {
ngx_pool_large_t *next;
void *alloc;
};
typedef struct {
u_char *last;
u_char *end;
ngx_pool_t *next; //链接到下一个内存池,内存池的很多块内存就是通过该指针连成链表的
ngx_uint_t failed; //记录内存分配不能满足需求的失败次数 (好像是个经验值,没有找到依据,nginx给出的好像是4)
} ngx_pool_data_t;
参考文章: http://www.alidata.org/archives/1390
http://tengine.taobao.org/book/chapter_10.html