miller
发布于

backlog , grpc中netty配置

net.core.somaxconn 是Linux中的一个kernel参数,表示socket监听(listen)的backlog上限。
什么是backlog呢?backlog就是socket的监听队列,当一个请求(request)尚未被处理或建立时,他会进入backlog。而socket server可以一次性处理backlog中的所有请求,处理后的请求不再位于监听队列中。当server处理请求较慢,以至于监听队列被填满后,新来的请求会被拒绝。

Linux中可以工具 syctl 来动态调整所有的kernel参数。所谓动态调整就是kernel参数值修改后即时生效。

 sysctl -w net.core.somaxconn=32768  
永久就 /etc/sysctl.conf 中增加一行 
  net.core.somaxconn= 4000   
 # sysctl -p   生效

[root@sh149 ~]# sysctl -a|grep tcp_keepalive
net.ipv4.tcp_keepalive_time = 60 ##单位:秒
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_intvl = 75 ##单位:秒

  • 可以在/etc/sysctl.conf查看和修改相关值
  • tcp_keepalive_time:最后一个实际数据包发送完毕后,首个keepalive探测包发送的时间。
  • 如果首个keepalive包探测成功,那么链接会被标记为keepalive(首先TCP开启了keepalive)
此后此参数将不再生效,而是使用下述的2个参数继续探测
  • tcp_keepalive_intvl:此后,无论通道上是否发生数据交换,keepalive探测包发送的时间间隔
  • tcp_keepalive_probes:在断定链接失效之前,尝试发送探测包的次数;
浏览 (276)
点赞
收藏
评论