V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
MungBeanSoup
V2EX  ›  Go 编程语言

golang 实现的 tcp 服务器 500 个左右并发就出现 connection reset by peer

  •  
  •   MungBeanSoup · 2017-10-17 19:57:05 +08:00 · 2843 次点击
    这是一个创建于 2380 天前的主题,其中的信息可能已经有所发展或是发生改变。

    使用 golang 实现的一个简单的 tcp 服务器,主要就是接收客户端连接然后做 rpc 转发 发现在 500 个连接开始就陆续出现 connection reset by peer,5000 个以上的时候甚至有 60%报错 服务端就启动在本地,由于没有头绪也不知道要给出什么参数 MacBook Pro (Retina, 13-inch, Early 2015) Golang 1.9 有高手指点迷津么

    11 条回复    2017-10-19 14:54:15 +08:00
    ChristopherWu
        1
    ChristopherWu  
       2017-10-17 20:05:49 +08:00
    接收的服务器是怎么实现的? golang 的 rpc 有设置 req.Close 吗?
    可能是服务器关闭了链接,但 golang 复用了之前的链接,所以提示 reset by peer
    MungBeanSoup
        2
    MungBeanSoup  
    OP
       2017-10-17 20:08:00 +08:00
    @ChristopherWu
    connection reset by peer 不是 rpc 调用的时候报的错,是我自己的 tcp 服务器 RST 了连接
    sagaxu
        3
    sagaxu  
       2017-10-17 20:18:47 +08:00 via Android
    Transport.MaxIdleConnsPerHost 设置了吗?
    MungBeanSoup
        4
    MungBeanSoup  
    OP
       2017-10-18 09:56:24 +08:00
    @sagaxu tcp 服务器该怎么设置这个配置
    sagaxu
        5
    sagaxu  
       2017-10-18 10:07:22 +08:00
    @MungBeanSoup 那要看你的连接池是怎么写的了
    90928yao
        6
    90928yao  
       2017-10-18 10:42:30 +08:00
    请复用,你看下端口 应该都是 close_wait
    MungBeanSoup
        7
    MungBeanSoup  
    OP
       2017-10-18 11:17:14 +08:00
    @90928yao 请问 tcp 该如何复用连接
    我搜索都是 http 复用的 tcp 连接
    wcsjtu
        8
    wcsjtu  
       2017-10-18 16:40:56 +08:00
    @MungBeanSoup SO_REUSEADDR
    petelin
        9
    petelin  
       2017-10-18 19:58:37 +08:00
    @90928yao close_wait 是服务端没有主动调起 close 吧和复用有什么关系?
    reus
        10
    reus  
       2017-10-19 10:16:59 +08:00
    ……没代码有什么好说的。
    MungBeanSoup
        11
    MungBeanSoup  
    OP
       2017-10-19 14:54:15 +08:00
    最后设置服务器的 somaxconn 和 backlog 让连接能上 W 了,接下来看看有没有别的能优化的地方
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3285 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:46 · PVG 21:46 · LAX 06:46 · JFK 09:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.