V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
CN10010

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

  •  
  •   CN10010 · Aug 6, 2020 via iPad · 3202 views
    This topic created in 2103 days ago, the information mentioned may be changed or developed.

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

    重启服务后

    出现问题后 web

    haproxy 日志

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

    不一定是你说的问题,但是你可以排查一下
    rrfeng
        2
    rrfeng  
       Aug 6, 2020 via Android
    就是 ulimit 的问题,nofile 设大点。

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

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

    正常的命令应该是 cat /proc/123/limits 这样
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   924 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 19:41 · PVG 03:41 · LAX 12:41 · JFK 15:41
    ♥ Do have faith in what you're doing.