Nginx 显示有 15k 个活动连接,其中很少有正在读取/写入/等待 - 它们在做什么?

Nginx 显示有 15k 个活动连接,其中很少有正在读取/写入/等待 - 它们在做什么?

当前使用 NGINX 作为分片 mongo 集群上游的负载均衡器。

.conf 内容如下:

stream {
    upstream prodapp_mongo {
        least_conn;

        server xxx.xxx.xxx.xxx:27017;
        server xxx.xxx.xxx.xxx:27017;
        server xxx.xxx.xxx.xxx:27017;
    }   

    server {
        listen 27017;
        proxy_connect_timeout 25s;
        proxy_timeout 60s;
        proxy_pass prodapp_mongo;
        error_log /var/log/nginx/mongo.error.log;
    }
}

stub_status 输出:

Active connections: 15751
server accepts handled requests
 15070690 15070506 129824
Reading: 0 Writing: 2 Waiting: 0

大约 14 个小时内,活动连接数似乎一直徘徊在 15k 左右,我担心为什么它们没有处于读取/写入/等待状态。

我们的数据报告显示,这段时间内连接数量稳步增加,我正在尝试进一步挖掘“为什么”会有这么多活跃连接,以及这些连接在做什么?

在此处输入图片描述

答案1

“为什么”有这么多活跃连接

nginx 减少Active connections数量客户端连接关闭时,因此可以肯定那里有很多空闲连接。它已建立,但目前未发送/接收任何数据。

通过连接到数据库并运行来检查 mongodb 的数据库连接

db.serverStatus().connections

这些在做什么?

由于您没有描述您的应用程序/数据库客户端,它可能来自应用程序方面,例如来自数据库驱动程序的连接池、应用程序的持久连接,甚至非close()d 连接。

相关内容