mirror of
https://github.com/nginx/nginx.git
synced 2024-12-26 00:41:02 -06:00
Core: added a warning about reusing connections.
Previously, reusing connections happened silently and was only visible in monitoring systems. This was shown to be not very user-friendly, and administrators often didn't realize there were too few connections available to withstand the load, and configured timeouts (keepalive_timeout and http2_idle_timeout) were effectively reduced to keep things running. To provide at least some information about this, a warning is now logged (at most once per second, to avoid flooding the logs).
This commit is contained in:
parent
eae2b2fdf1
commit
e240d88d44
@ -1298,6 +1298,19 @@ ngx_drain_connections(ngx_cycle_t *cycle)
|
|||||||
ngx_queue_t *q;
|
ngx_queue_t *q;
|
||||||
ngx_connection_t *c;
|
ngx_connection_t *c;
|
||||||
|
|
||||||
|
if (cycle->reusable_connections_n == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cycle->connections_reuse_time != ngx_time()) {
|
||||||
|
cycle->connections_reuse_time = ngx_time();
|
||||||
|
|
||||||
|
ngx_log_error(NGX_LOG_WARN, cycle->log, 0,
|
||||||
|
"%ui worker_connections are not enough, "
|
||||||
|
"reusing connections",
|
||||||
|
cycle->connection_n);
|
||||||
|
}
|
||||||
|
|
||||||
n = ngx_max(ngx_min(32, cycle->reusable_connections_n / 8), 1);
|
n = ngx_max(ngx_min(32, cycle->reusable_connections_n / 8), 1);
|
||||||
|
|
||||||
for (i = 0; i < n; i++) {
|
for (i = 0; i < n; i++) {
|
||||||
|
@ -55,6 +55,7 @@ struct ngx_cycle_s {
|
|||||||
|
|
||||||
ngx_queue_t reusable_connections_queue;
|
ngx_queue_t reusable_connections_queue;
|
||||||
ngx_uint_t reusable_connections_n;
|
ngx_uint_t reusable_connections_n;
|
||||||
|
time_t connections_reuse_time;
|
||||||
|
|
||||||
ngx_array_t listening;
|
ngx_array_t listening;
|
||||||
ngx_array_t paths;
|
ngx_array_t paths;
|
||||||
|
Loading…
Reference in New Issue
Block a user