epoll -- 9




200x200


引言上一篇文章中,我们介绍了编程思想中的 Reactor 与 Proactor 两种设计模式:程序设计中的两大经典模式 -- Reactor & Proacto

#io    #epoll    #io复用    #redis   
概述在 nginx 初始化流程的介绍中,我们已经看到 nginx module 是怎么初始化和加载的,nginx module 提供了抽象的接口,由各个实际的模块实现者去实现相应的接口,当然,事件模块也是如此 EPOLL 模块 module 定义// struct ngx_event_module_t // 事件模块结构体 {{{ typedef struct { // 模块名称 ngx_str_t *name; // 解析配置前,用于创建存储配置项参数结构体的回调函数 void *(*create_conf)(ngx_cycle_t *cycle); // 解析配置完成后,用于综合处理某些配置项 char *(*init_conf)(ngx_cycle_t *cycle, void *conf); // 对于事件驱动机制,每个事件需要实现的 10 个抽象方法 ngx_event_actions_t actions; } ngx_event_module_t; // }}}  在事件模块结构体的最后定义了 
#技术帖    #龙潭书斋    #io    #epoll   

200x200


nginx 事件处理框架事件处理框架解决的问题是事件的收集、管理和分发nginx 事件处理模块主要处理的是网络事件和定时器事件 多平台兼容不同的操作系统中,nginx&n

#读书笔记    #技术帖    #epoll    #nginx   

200x200


nginx 相对于 apache 的优点轻量级ngxin 相对于 apache 来说,占用资源更少,这是高度模块化设计的优势nginx&nb

#技术帖    #linux    #unix    #apache   
WebbenchWebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行 下载链接:Web Bench  Tinyhttpdtinyhttpd是一个超轻量型Http Server,使用C语言开发,全部代码只有502行(包括注释),附带一个简单的Client,可以通过阅读这段代码理解一个 Http Server 的本质 博主对该项目源码进行了阅读和解析:超轻量服务器 tinyhttpd 源码解析  下载链接:Tiny HTTPd  CMockerycmockery是google发布的用于C单元测试的一个轻量级的框架。它很小巧,对其他开源包没有依赖,对被测试代码侵入性小。cmockery的源代码行数不到3K,你阅读一下will_return和mock的源代码就一目了然了 主要特点:免费且开源,google提供技术支持;轻量级的框架,使测试更加快速简单;避免使用复杂的编译器特性,对老版本的编译器来讲,兼容性好;并不强制要求待测代码必须依赖C99标准,这一特性对许多嵌入
#技术帖    #linux    #unix    #c语言   
概述epoll 是 linux 内核为处理大批量文件描述符而对 poll 进行的改进版本,是 linux 下多路复用 IO 接口 select/poll 的增强版本,显著提高了程序在大量并发连接中只有少量活跃的情况下的CPU利用率在获取事件时,它无需遍历整个被侦听描述符集,只要遍历被内核 IO 事件异步唤醒而加入 ready 队列的描述符集合就行了epoll 除了提供 select/poll 所提供的 IO 事件的电平触发,还提供了边沿触发,,这样做可以使得用户空间程序有可能缓存 IO 状态,减少 epoll_wait 或 epoll_pwait 的调用,提高程序效率 实现原理当某个进程调用 epoll_create 函数创建 epoll 专用的文件描述符时,Linux 内核会创建一个 eventpoll 结构体变量:struct eventpoll { ... struct rb_root rbr; // 红黑树根节点,存储 epo
#读书笔记    #技术帖    #linux    #unix   

200x200


概述考虑一个简单的客户端程序:从标准输入读取数据(fgets),然后发送给服务器,并接收服务器返回的TCP套接字如果当客户端进程阻塞在从标准输入读取数据期间,服务器进程被杀死,那么服务器进程会给客户端

#读书笔记    #技术帖    #linux    #unix   



京ICP备15018585号