V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
CN10010
V2EX  ›  宽带症候群

有偿求解决 haproxy 负载均衡端口耗尽的问题

  •  
  •   CN10010 · 2020-08-06 21:00:46 +08:00 via iPad · 2473 次点击
    这是一个创建于 1605 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我是穷叼毛,求大佬 50 解决。 在本地用的 haproxy 做负载均衡 x86 openwrt 几天测试下来一直这样,在网上看了很多方法,各种改 ulimit 值,关闭日志,端口复用,也都试过,运行不到半个钟就死了,重启 haproxy 服务之后又可以用个几十分钟,然后又死,一直重复这种问题。一看网络连接,一堆的 TIME_WAIT 短时间内网络根本不会产生这么多,这究竟是什么问题。 有靓仔遇到过这种问题吗,我好绝望

    重启服务后

    出现问题后 web

    haproxy 日志

    7 条回复    2020-08-08 10:25:27 +08:00
    blless
        1
    blless  
       2020-08-06 21:57:31 +08:00 via Android
    我印象中好像处理过一次问题,
    haproxy 在处理配置文件的 maxconn 还是啥反正就是那个最大限制数的时候,实际会打开 2 倍的文件数?(就是 unlimit 修改的那个值)
    所以如果 unlimit 的文件数没有 maxconn 的两倍的话,默认只会使用 1000,而且不会报错
    所以 maxconn 并不是越大越好,只要够用就好

    不一定是你说的问题,但是你可以排查一下
    rrfeng
        2
    rrfeng  
       2020-08-06 22:07:28 +08:00 via Android
    就是 ulimit 的问题,nofile 设大点。

    cat /proc/pid/limits 查看进程当时的限制值

    ls /proc/pid/fd 算下有多少 open file
    CN10010
        3
    CN10010  
    OP
       2020-08-06 22:14:28 +08:00 via Android
    @blless 试了一下,还是不行,搞不懂什么原因,刚重启服务都是好好的,过了几分钟 time_wait 一下暴增,又死了。不过还是谢谢靓仔😁
    CN10010
        4
    CN10010  
    OP
       2020-08-06 22:18:02 +08:00 via Android
    @rrfeng 这两个文件都没有,直接提示 no such file or directory,你用的也是 openwrt 吗
    blless
        5
    blless  
       2020-08-06 22:44:57 +08:00 via Android
    首先修改确定 ulimit 有生效 然后 maxconn 不要配置太高 但是 ulimit 一定要比 maxconn 两倍高
    还有就是 内网 http 转发其实可以开 keepalive,加 http reuse
    fovecifer
        6
    fovecifer  
       2020-08-07 08:29:52 +08:00
    一般都是没有 keepalive 导致的 time_wait 一般在先断开链接的那一侧很多
    zwy100e72
        7
    zwy100e72  
       2020-08-08 10:25:27 +08:00 via iPhone
    pid 不是字面上的 pid 而是进程 id

    正常的命令应该是 cat /proc/123/limits 这样
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2752 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 1142ms · UTC 13:50 · PVG 21:50 · LAX 05:50 · JFK 08:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.