负载测试:不稳定的错误"连接被拒绝"

环境:

  • Ubuntu 18.04.1,DigitalOcean:RAM 2Gb + 2CPU

  • Nginx(OpenResty)+ Lua

我在做什么:

我尝试通过HTTPS发送以下简单的POST请求:_(这是YandexTank的格式)_

[Host: myserver.com]
[Content-Type: application/x-www-form-urlencoded]
80 /api
xxxxxx=777777777&yyyyyyy=666666666&zzzzzzzz=ce96c7c3-87e5-4b90-b1e5-9664697aa5b6

计划为:30秒内的100RPS。

我看到了什么:

首先,约1700-1900个请求成功返回状态码200。但接下来... 大约99%的请求出错,响应为"111 Connection refused" 最多只有1%的请求返回状态码200

如果我等待30秒并重新启动负载测试,我甚至不会有1600个成功的请求!第一个请求就已经出现了错误"111 Connection refused"

如果我等待10分钟并重新启动负载测试,第一种情况将重复(1700-1900-成功,其他-错误)。


我的问题:

有哪些参数建议我配置以解决这个错误?这个问题在NGINX配置中吗?或者是操作系统的问题?

下面的数字我不同地更改了(worker_processes,worker_rlimit_nofile,worker_connections,keepalive_timeout)。

谢谢!


配置:

Nginx

user  www-data;
worker_processes  4;

error_log  logs/error.log;
error_log  logs/error.log debug;

worker_rlimit_nofile 33000;

events {
    worker_connections  4000;
    use epoll;
    multi_accept on;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    reset_timedout_connection on;
    sendfile        on;
    keepalive_timeout 15;

    include '/etc/nginx/sites-enabled/*';
}

文件(服务器+位置)

...
    location ~ ^/api {
        content_by_lua '
            ngx.say("OK")
            return ngx.exit(200)
        ';
    }
...

ulimit -n

200000
点赞
用户7155773
用户7155773

将下面翻译成中文并且保留原本的 markdown 格式

The problem was in my home router

It could not cope with such a load

The problem was solved by replacing the router

问题出在家里的路由器上,它无法处理这样的负荷。通过更换路由器来解决此问题。

2020-02-27 06:46:51