From 813d8ee7e3bc791e56db7a5820c76a8fe05bacdf Mon Sep 17 00:00:00 2001 From: Neil Booth Date: Sun, 18 Dec 2016 23:17:03 +0900 Subject: [PATCH] Reduce logging verbosity for delayed requests Only log when the delay changes --- server/protocol.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/server/protocol.py b/server/protocol.py index 5e343cb..c590fb1 100644 --- a/server/protocol.py +++ b/server/protocol.py @@ -158,14 +158,17 @@ class ServerManager(util.LoggedClass): item = (priority, self.next_queue_id, session) self.next_queue_id += 1 - secs = int(session.pause) - excess = priority - self.BANDS - if excess > 0: - secs = excess - session.log_info('delaying response to low-priority session {:d}s' - .format(secs)) - if secs: - self.delayed_sessions.append((time.time() + secs, item)) + excess = max(0, priority - self.BANDS) + if excess != session.last_delay: + session.last_delay = excess + if excess: + session.log_info('high bandwidth use, deprioritizing by ' + 'delaying responses {:d}s'.format(excess)) + else: + session.log_info('stopped delaying responses') + delay = max(int(session.pause), excess) + if delay: + self.delayed_sessions.append((time.time() + delay, item)) else: self.queue.put_nowait(item) @@ -573,6 +576,7 @@ class Session(JSONRPC): self.anon_logs = env.anon_logs self.max_send = env.max_send self.bandwidth_limit = env.bandwidth_limit + self.last_delay = 0 self.txs_sent = 0 self.requests = []