开发者社区> 问答> 正文

netty服务端未达到百万连接,client就报错too many files?

现象:

调整了单进程最大文件数 和 操作系统最大文件数,但是在client连接服务端时,50w连接左右就会报错,client就会报错:“too many files”

展开
收起
君浩 2020-03-31 00:11:29 2082 0
1 条回答
写回答
取消 提交回答
  • 开发

    排查:

    • client端:lsof -p client的pid 发现 50w左右的ipv6, 50w左右的sock文件;搜索得知sock文件是还没有connect或者bind成功的文件
    • server端:netstat -apn | grep '192.168.56.102' | grep -v 'ESTABLISHED' 发现果然有许多没有连接成功的socket
    • 推测应该是服务端syc queue溢出导致一些客户端的链接始终没有建立成功
    • 所以在client端,每连接成功一个,进行1ms的sleep
    • server 进行netstat,发现非established链接变少,最终达到百万连接
    2020-03-31 00:11:42
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
RocketMQ Client-GO 介绍 立即下载
《基于 Service Worker 实现在线代理》 立即下载
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式 立即下载