nginx文档说:
max_clients = worker_processes * worker_connections
但是保持活动状态如何影响这个问题呢?我的配置设置了2个worker_processes和8192个worker_connections;这意味着理论上最多可以处理16384个并发连接。同时推送16384个数据流是非常巨大的,但是如果我有一个60秒的keepalive_timeout,那么每个客户端独占一个连接1分钟,这个数字就完全不同了。那它究竟是什么?
与此相关的是$connection变量,可以在log_format指令中使用。我定义了以下日志格式,以便分析服务器的性能:
log_format perf '$request_time $time_local $body_bytes_sent*$gzip_ratio $connection $pipe $status $request_uri';
那个$connection变量报告了大约1100-1200万个连接!我不是一个数学专业的人,但显然这个数字比worker_processes * worker_connections要高得多。那么它应该代表什么?
简而言之,我试图弄清楚如何确定worker_connection的良好值。