在 src\event\modules\ngx_epoll_module.c
typedef struct {ngx_uint_t events;ngx_uint_t aio_requests;
} ngx_epoll_conf_t;
ngx_epoll_conf_t 是 Nginx 中用于存储与 epoll 模型相关的配置信息的结构体。
它定义了两个关键字段,分别用于配置 epoll 和异步 I/O(AIO)的行为
ngx_uint_t events;
用于配置 epoll 实例能处理的最大事件数
对应 epoll_wait 系统调用中的 maxevents 参数。
在 epoll 模型中,epoll_wait 用于监听多个文件描述符上的事件。
events 参数决定了每次调用 epoll_wait 时最多能返回多少个事件
如果 events 设置得太小,可能导致频繁调用 epoll_wait,增加系统调用开销。
如果设置得太大,可能会浪费内存(需要为事件数组分配更多空间)。
ngx_uint_t aio_requests;
用于配置 异步 I/O(AIO)的最大请求数
控制 Nginx 同时可以处理的异步 I/O 请求的数量
异步 I/O 是一种提高 I/O 性能的技术,允许文件读写操作在后台异步执行,减少主线程阻塞。
aio_requests 决定了 Nginx 在同一时刻可以发起的异步 I/O 操作的最大数量。
如果 aio_requests 设置得太小,可能导致 I/O 操作成为性能瓶颈。
如果设置得太大,可能会占用过多系统资源(如内存或文件描述符),影响其他进程的性能