在nginx中,worker_connections,keepalive_timeout和$ connection之间的关系是什么

Dan*_*iel 14 nginx

nginx文档说

max_clients = worker_processes * worker_connections
Run Code Online (Sandbox Code Playgroud)

但是如何将keepalive因素纳入其中呢?我的配置设置有2个worker_processes和8192个worker_connections; 这意味着我理论上可以处理最多16384个并发连接.同时推出16384个数据流是巨大的,但如果我有60s keepalive_timeout然后每个客户端占用1分钟的连接,那么这个数字具有完全不同的含义.这是什么?

连接到所有这些是$ connection变量,可以与log_format指令一起使用.我定义了以下日志格式,以便分析服务器的性能:

log_format  perf  '$request_time $time_local $body_bytes_sent*$gzip_ratio $connection $pipe $status $request_uri';
Run Code Online (Sandbox Code Playgroud)

那个$ connection变量报告了大约11-12百万个连接!我不是数学专业,但显然这个数字高于worker_processes*worker_connections.那应该代表什么呢?

简而言之,我正在试图弄清楚如何为worker_connection确定一个好的值.

rza*_*zab 9

$ connection是一个计数器,而不是现在使用的连接总数.所以它的目标是成长.

Keepalive连接不能被丢弃,因此房间是worker_processes*worker_connections - keepalive连接