多线程多进程处理模式:
一个线程只能处理一个流的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
