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确定一个好的值。
发布于 2009-08-12 09:26:13
$connection是一个计数器,而不是现在使用的连接总数。所以它的目的是生长。
保持活动连接不能丢弃,所以房间是worker_processes * worker_connections保持活动连接。
发布于 2011-11-22 08:47:45
想象一下整个场景:第一个客户端连接到您,获取一个文件,然后浏览器保持连接60秒。另一个客户端也连接、获取和保持其连接。在第一分钟结束时,您可能(在最坏的情况下)所有客户都要求您在过去60秒内仍然保持他们的连接打开。
因此,在最坏的情况下,您将在一秒钟内提供"worker_processes * worker_connections / keep_alive“连接,即您的数字大约为260个。如果您需要更多的服务,您应该分配更多的连接--只是为了提供服务--请阅读Tuning nginx worker_process to obtain 100k hits per min中的“我的答案”
afaik可以在2.5mb内存中保存10k的非活动(保持生存的)连接,因此增加worker_connections很便宜,非常便宜。我认为这里的主要瓶颈可能是操作系统本身。
https://stackoverflow.com/questions/1258719
复制相似问题