Skip to content

Commit aa02475

Browse files
committed
add jingqun questions
1 parent d41ceb9 commit aa02475

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

network.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,11 @@
6969
9、EPOLL_ONESHOT 应用于哪种场景,作用是什么?
7070

7171
10、accept 惊群问题描述?怎么解决?(内核中解决方案,应用层解决方案)
72+
(tips:常见的惊群有 accept惊群和 epoll惊群,两者的使用背景相似,
73+
都是多个进程共同使用同一个fd,但是内核在2.6中已经对于accept惊群做了优化,
74+
每次只唤醒一个进程;
75+
epoll_wait的惊群处理在4.x内核版本中添加了EPOLLEXCLUSIVE标志的支持,
76+
但像下面nginx的说明一样,在高并发环境下,惊群并不显著)
7277

7378
11、time_wait 状态作用是什么?
7479

@@ -404,6 +409,12 @@
404409

405410
123、什么时候socket fd会返回可读事件?
406411
(tips:这里需要明确的是,不是有数据就可读,有一个水位的东西需要关注)
412+
413+
124、accept的等待队列采用FIFO模型,即调用accept阻塞后,
414+
内核会将curr添加到队列尾部,然后有新链接到来时,再从头部唤醒进程,
415+
这里的唤醒逻辑就和之前惊群的描述对上了;
416+
但是 epoll_wait 采用的是 LIFO,阻塞后,curr是添加到 等待队列头的,
417+
导致的问题就是 负载不均,可以采用SOCK_REUSEPORT解决。
407418

408419

409420
// http

0 commit comments

Comments
 (0)