V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
JasonLaw
V2EX  ›  程序员

如何解决负载测试产生的“socket: too many open files”

  •  
  •   JasonLaw · 2021-11-11 18:02:04 +08:00 · 1921 次点击
    这是一个创建于 1098 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我使用k6进行负载测试,运行的命令为k6 run --stage 5s:250 script.js,script.js 的内容如下:

    import { check } from 'k6';
    import http from "k6/http";
    
    export default function main(token) {
        let res = http.get(
            "https://{domain}/schedules"
        );
    
        check(res, {
            'is status 200': (r) => r.status === 200
        });
    }
    

    但是输出出现了大量的socket: too many open files,如下图所示:

    服务是基于 Spring Boot 的,使用 Nginx 作为 reverse proxy 。要怎么解决“socket: too many open files”这个问题呢?

    我尝试过按照ck :: Nginx socket() failed (24: Too many open files)进行修改,但是没有效果。

    第 1 条附言  ·  2021-11-12 09:55:15 +08:00
    11 条回复    2021-11-12 15:21:26 +08:00
    aladdinding
        1
    aladdinding  
       2021-11-11 18:13:30 +08:00
    ulimit ?
    JasonLaw
        2
    JasonLaw  
    OP
       2021-11-11 18:29:27 +08:00
    @aladdinding #1 我尝试过按照 https://stackoverflow.com/a/27849503/5232255 进行修改,然后 restart Nginx ,还是不行。
    ysc3839
        3
    ysc3839  
       2021-11-11 18:50:51 +08:00
    你这是测试程序的问题吧?不是 nginx 的问题。
    Citrus
        4
    Citrus  
       2021-11-11 18:55:31 +08:00
    macOS 终端默认的 ulimit 好像是 256 哦,你改了么?

    顺便想问下这是什么压测工具,看起来挺好用的
    Citrus
        5
    Citrus  
       2021-11-11 18:56:32 +08:00
    @Citrus 忽略,看到了,原来工具框架就叫 K6 。刚好跟我知道的一个东西重名了。
    setsunakute
        6
    setsunakute  
       2021-11-11 18:57:45 +08:00
    看截图是你本机报的这个错误, 不是服务端报的, 所以要改你的 mac 的 ulimit
    JasonLaw
        7
    JasonLaw  
    OP
       2021-11-11 18:59:01 +08:00
    @ysc3839 #3
    @Citrus #4

    好像是😅,有时候还是没有想到太多东西,怪不得 Nginx 的 error.log 没有相关的日志。我晚点处理一下看看。
    ch2
        8
    ch2  
       2021-11-11 19:02:49 +08:00
    压测机本身也得调参数
    TripleZ
        9
    TripleZ  
       2021-11-11 19:21:24 +08:00 via iPhone
    调整测试机的 ulimit nofile 的参数就行。
    JasonLaw
        10
    JasonLaw  
    OP
       2021-11-12 09:53:41 +08:00
    @ysc3839 #3
    @Citrus #4
    @setsunakute #6
    @ch2 #8
    @TripleZ #9

    按照 https://apple.stackexchange.com/a/312010/362633 进行修改,问题解决了。
    julyclyde
        11
    julyclyde  
       2021-11-12 15:21:26 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5860 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 03:00 · PVG 11:00 · LAX 19:00 · JFK 22:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.