Nginx采用IO多路复用内核模式种类


多线程多进程处理模式:

一个线程只能处理一个流的I/O事件,如果想要同时处理多个流,要么多进程(fork)

要么多线程(pthread_create),很不幸这两种方法效率不算最高。

所以,同样交给一个线程去采用IO复用模式。

类型一、select模型、poll模型。

select模型:

while true{

    select(streams[])

        for i has data

        read until unavailable

}

类型二、epoll模型

优势一:解决select模型对文件具柄FD打开限制

优势二:采用callback函数回调机制优化模型效率

select -----》poll ------》epoll

CPU亲和:是一种把CPU核心和Nginx工作进程绑定方式,把每个worker进程固定在一个cpu上执行,减少切换cpu的cache miss,获得更好的性能。

Nginx采用sendfile方式转输文件,0拷贝传输模式,只通过内核空间传输给socket,响应给用户。

test2026-06-10 10:50