Fastsocket is a highly scalable socket and its underlying networking implementation of Linux kernel. With the straight linear scalability, Fastsocket can provide extremely good performance in multicore machines. In addition, it is very easy to use and maintain. As a result, it has been deployed in the production environment of SINA.
GNU General Public License v2.0
3.76k
stars
727
forks
source link
Add the accept_mutex attention of nginx in README #39
When accept_mutex of nginx is enabled, the nginx may fail to accept new conn forever with the fastsocket default param. Because the syn packet may not be passed to the cpu which hold the accept mutex by RPS or others. And the other CPUs receives the syn packet, it match the local listen socket with spawn_socket enabled, so it will not wake up the waiting worker process which hold mutex. As a result, the nginx hangs and fail to accept the new conn request.
When accept_mutex of nginx is enabled, the nginx may fail to accept new conn forever with the fastsocket default param. Because the syn packet may not be passed to the cpu which hold the accept mutex by RPS or others. And the other CPUs receives the syn packet, it match the local listen socket with spawn_socket enabled, so it will not wake up the waiting worker process which hold mutex. As a result, the nginx hangs and fail to accept the new conn request.
Now there is no good idea to avoid this issue.