We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent d41ceb9 commit aa02475Copy full SHA for aa02475
network.txt
@@ -69,6 +69,11 @@
69
9、EPOLL_ONESHOT 应用于哪种场景,作用是什么?
70
71
10、accept 惊群问题描述?怎么解决?(内核中解决方案,应用层解决方案)
72
+ (tips:常见的惊群有 accept惊群和 epoll惊群,两者的使用背景相似,
73
+ 都是多个进程共同使用同一个fd,但是内核在2.6中已经对于accept惊群做了优化,
74
+ 每次只唤醒一个进程;
75
+ epoll_wait的惊群处理在4.x内核版本中添加了EPOLLEXCLUSIVE标志的支持,
76
+ 但像下面nginx的说明一样,在高并发环境下,惊群并不显著)
77
78
11、time_wait 状态作用是什么?
79
@@ -404,6 +409,12 @@
404
409
405
410
123、什么时候socket fd会返回可读事件?
406
411
(tips:这里需要明确的是,不是有数据就可读,有一个水位的东西需要关注)
412
+
413
+124、accept的等待队列采用FIFO模型,即调用accept阻塞后,
414
+ 内核会将curr添加到队列尾部,然后有新链接到来时,再从头部唤醒进程,
415
+ 这里的唤醒逻辑就和之前惊群的描述对上了;
416
+ 但是 epoll_wait 采用的是 LIFO,阻塞后,curr是添加到 等待队列头的,
417
+ 导致的问题就是 负载不均,可以采用SOCK_REUSEPORT解决。
407
418
408
419
420
// http
0 commit comments