回答
收藏
分享
举报
Epoll
提问于2020-08-23 22:33

浏览 3.8k

关于epoll,哪位大神能用言简意赅的方式来介绍一下呢,感觉这个内容是Nginx最后核心的一块技术原理,在网上也学习了一些内容,感觉还是有点没有吃透。


转赞一篇不错的好文”https://zhuanlan.zhihu.com/p/63179839

已修改于2023-03-03 00:16



写下您的回答
发表回答
全部回答(3)

按点赞数排序

按时间排序

简言之,就是内核将Socket缓冲区情况通知给用户态进程的接口。概括为以下4点:

1、TCP由内核实现的,epoll是内核提供给应用进程的接口;

2、当TCP连接需要发送数据时,Socket缓冲区上必须有空闲位置。内核接收到对方的ACK报文,才能释放掉发送报文(否则要反复重发),产生空闲位置。

3、当TCP连接需要接收数据时,必须是Socket缓冲区上已经有数据了,否则read函数就会阻塞。epoll_wait可以完成2、3两个步骤(包括三次握手)的通知。

4、当你就某个TCP连接需要接收内核通知时,通过epoll_ctl函数告诉内核即可。

赞同

6

回复举报

回答于2020-08-25 08:23



回复陶辉
回复
谢谢老师指导

0

回复举报

回答于2020-08-26 03:19



回复jiangyidigital
回复

nginxLinux平台默认是epoll事件模型,但是内核版本号要高于2.6.18才提供,现在的各大Linux发行版都满足了,如果不满足内核版本,默认的是select事件模型。

赞同

0

回复举报

回答于2020-09-08 18:10



回复守望
回复

好的问题,感谢陶老师的回答

赞同

0

回复举报

回答于2020-08-26 14:21



回复阿尔巴
回复
提问者
jiangyidigital
这家伙很懒还未留下介绍~
0
文章
1
问答
1
粉丝
相关问答

这个问题已经的到解决,需要在nginx controller的service 中配置environment, gateway, api, certs等相关参数,即可得到解决

点赞 0
浏览 3.6k

该路径中文件系统(磁盘)为只读模式挂载,卸载后重新以读写形式挂载即可

点赞 0
浏览 4.3k