Initialise modified-moving-average latency calc better.

Use the first value, rather than initialising at zero,
which takes many queries to converge.
This commit is contained in:
Simon Kelley
2022-09-16 00:16:18 +01:00
parent 6722ec6c78
commit fa45e06431

View File

@@ -1241,7 +1241,10 @@ void reply_query(int fd, time_t now)
free_rfds(&forward->rfds); free_rfds(&forward->rfds);
/* calculate modified moving average of server latency */ /* 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. */ /* denominator controls how many queries we average over. */
server->query_latency = server->mma_latency/128; server->query_latency = server->mma_latency/128;