V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
DinoStray
V2EX  ›  问与答

Linux 服务器, 压测, tcp 长连接 并发到 26 万, 网卡就像挂掉了, 大家帮忙给点思路

  •  
  •   DinoStray · 2020-01-07 16:49:25 +08:00 · 2268 次点击
    这是一个创建于 1564 天前的主题,其中的信息可能已经有所发展或是发生改变。

    linux 服务器, 压测, tcp 长连接 并发到 26 万.
    内存 CPU 都正常
    已经建好的 tcp 连接都正常
    就是无法新建 tcp 连接了

    现象包括连 百度 都无法 ping 了

    ping www.baidu.com

    ping: www.baidu.com: Temporary failure in name resolution

    新启动一个服务, 数据也无法发送了
    基本等同完全无法访问网络了, apt update 之类的命令也全部报错失效

    7 条回复    2020-03-08 21:35:41 +08:00
    DinoStray
        1
    DinoStray  
    OP
       2020-01-07 16:50:33 +08:00
    把压测的模拟器都关掉, 一切恢复正常
    Comphuse
        2
    Comphuse  
       2020-01-07 19:03:00 +08:00   ❤️ 1
    codehz
        3
    codehz  
       2020-01-07 20:44:28 +08:00
    (听起来是因为文件句柄用光了
    julyclyde
        4
    julyclyde  
       2020-01-09 11:29:28 +08:00
    你们的客户有 26 万吗
    maxbon
        5
    maxbon  
       2020-01-11 14:33:17 +08:00
    内核调一调,/etc/sysctl.conf
    DinoStray
        6
    DinoStray  
    OP
       2020-03-08 21:34:05 +08:00
    @julyclyde 7*24 百万以上并发 tcp
    DinoStray
        7
    DinoStray  
    OP
       2020-03-08 21:35:41 +08:00
    问题已经解决了, 把笔记在这里贴一下吧:

    conntrack 限制

    所有在内核中由 Netfilter 的特定框架做的连接跟踪称作 conntrack ( connection tracking )

    达到最大限制后, 会报错
    nf_conntrack: table full, dropping packet

    查看当前系统设置最大连接数
    cat /proc/sys/net/netfilter/nf_conntrack_max

    查看连接跟踪有多少条目
    cat /proc/sys/net/netfilter/nf_conntrack_count

    vim /etc/sysctl.conf
    net.nf_conntrack_max = 2000000

    临时生效
    sysctl -p

    永久生效, 还需额外操作
    http://xy.am/2015/04/26/nf-conntrack/
    你只需要把 nf_conntrack 加到系统开机模块,就可以用 /etc/sysctl.conf 开机设置它了
    echo "nf_conntrack" >> /etc/modules
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2627 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:48 · PVG 09:48 · LAX 18:48 · JFK 21:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.