diff options
author | Simon Kelley <simon@thekelleys.org.uk> | 2022-09-16 00:16:18 +0100 |
---|---|---|
committer | Simon Kelley <simon@thekelleys.org.uk> | 2022-09-16 00:16:18 +0100 |
commit | fa45e06431ff0e96d3840f2180666dfabbd2c972 (patch) | |
tree | d68bad9c6a87a6741a51db5bba77cb395b0f2e4d | |
parent | 6722ec6c78b96b82956e67b60a8cfc5b155c6659 (diff) | |
download | dnsmasq-fa45e06431ff0e96d3840f2180666dfabbd2c972.tar.gz |
Initialise modified-moving-average latency calc better.
Use the first value, rather than initialising at zero,
which takes many queries to converge.
-rw-r--r-- | src/forward.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/forward.c b/src/forward.c index 52d5b8e..14d9421 100644 --- a/src/forward.c +++ b/src/forward.c @@ -1241,7 +1241,10 @@ void reply_query(int fd, time_t now) free_rfds(&forward->rfds); /* calculate modified moving average of server latency */ - server->mma_latency += dnsmasq_milliseconds() - forward->forward_timestamp - server->query_latency; + if (server->query_latency == 0) + server->mma_latency = (dnsmasq_milliseconds() - forward->forward_timestamp) * 128; /* init */ + else + server->mma_latency += dnsmasq_milliseconds() - forward->forward_timestamp - server->query_latency; /* denominator controls how many queries we average over. */ server->query_latency = server->mma_latency/128; |