[MediaWiki-commits] [Gerrit] Make all IdleConnection TCP KeepAlive parameters configurable - change (operations...pybal)

2015-12-07 Thread Giuseppe Lavagetto (Code Review)
Giuseppe Lavagetto has submitted this change and it was merged.

Change subject: Make all IdleConnection TCP KeepAlive parameters configurable
..


Make all IdleConnection TCP KeepAlive parameters configurable

This commit creates several configuration options for TCP KeepAlive
in IdleConnection, instead of using the hardcoded values. The default
values have also been changed to be slightly less aggressive.

Change-Id: I1f5e0993f1901def199e0fb4d3790836dc7db2f2
---
M pybal/monitors/idleconnection.py
1 file changed, 12 insertions(+), 8 deletions(-)

Approvals:
  Giuseppe Lavagetto: Verified; Looks good to me, approved
  jenkins-bot: Verified



diff --git a/pybal/monitors/idleconnection.py b/pybal/monitors/idleconnection.py
index 5ac7ea0..1c34634 100644
--- a/pybal/monitors/idleconnection.py
+++ b/pybal/monitors/idleconnection.py
@@ -25,7 +25,10 @@
 
 TIMEOUT_CLEAN_RECONNECT = 3
 MAX_DELAY = 300
-KEEPALIVE_RETRIES = 10
+KEEPALIVE = True
+KEEPALIVE_RETRIES = 3
+KEEPALIVE_IDLE = 10
+KEEPALIVE_INTERVAL = 30
 
 __name__ = 'IdleConnection'
 
@@ -37,8 +40,10 @@
 
 self.toCleanReconnect = self._getConfigInt('timeout-clean-reconnect', 
self.TIMEOUT_CLEAN_RECONNECT)
 self.maxDelay = self._getConfigInt('max-delay', self.MAX_DELAY)
-self.keepAliveRetries = self._getConfigInt('keepalive-retries',
-   self.KEEPALIVE_RETRIES)
+self.keepAlive = self._getConfigBool('keepalive', self.KEEPALIVE)
+self.keepAliveRetries = self._getConfigInt('keepalive-retries', 
self.KEEPALIVE_RETRIES)
+self.keepAliveIdle = self._getConfigInt('keepalive-idle', 
self.KEEPALIVE_IDLE)
+self.keepAliveInterval = self._getConfigInt('keepalive-interval', 
self.KEEPALIVE_INTERVAL)
 
 def run(self):
 """Start the monitoring"""
@@ -96,13 +101,12 @@
 if not self.active:
 return
 
-if self.transport is not None:
+if self.transport is not None and self.keepAlive:
 sock = self.transport.getHandle()
 sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
-sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPIDLE, 1)
-sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPCNT,
-self.keepAliveRetries)
-sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPINTVL, 1)
+sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPIDLE, 
self.keepAliveIdle)
+sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPCNT, 
self.keepAliveRetries)
+sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPINTVL, 
self.keepAliveInterval)
 
 # Set status to up
 self._resultUp()

-- 
To view, visit https://gerrit.wikimedia.org/r/256942
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I1f5e0993f1901def199e0fb4d3790836dc7db2f2
Gerrit-PatchSet: 1
Gerrit-Project: operations/debs/pybal
Gerrit-Branch: master
Gerrit-Owner: Mark Bergsma 
Gerrit-Reviewer: BBlack 
Gerrit-Reviewer: Faidon Liambotis 
Gerrit-Reviewer: Giuseppe Lavagetto 
Gerrit-Reviewer: Ori.livneh 
Gerrit-Reviewer: jenkins-bot <>

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] Make all IdleConnection TCP KeepAlive parameters configurable - change (operations...pybal)

2015-12-04 Thread Mark Bergsma (Code Review)
Mark Bergsma has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/256942

Change subject: Make all IdleConnection TCP KeepAlive parameters configurable
..

Make all IdleConnection TCP KeepAlive parameters configurable

This commit creates several configuration options for TCP KeepAlive
in IdleConnection, instead of using the hardcoded values. The default
values have also been changed to be slightly less aggressive.

Change-Id: I1f5e0993f1901def199e0fb4d3790836dc7db2f2
---
M pybal/monitors/idleconnection.py
1 file changed, 12 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/debs/pybal 
refs/changes/42/256942/1

diff --git a/pybal/monitors/idleconnection.py b/pybal/monitors/idleconnection.py
index 5ac7ea0..1c34634 100644
--- a/pybal/monitors/idleconnection.py
+++ b/pybal/monitors/idleconnection.py
@@ -25,7 +25,10 @@
 
 TIMEOUT_CLEAN_RECONNECT = 3
 MAX_DELAY = 300
-KEEPALIVE_RETRIES = 10
+KEEPALIVE = True
+KEEPALIVE_RETRIES = 3
+KEEPALIVE_IDLE = 10
+KEEPALIVE_INTERVAL = 30
 
 __name__ = 'IdleConnection'
 
@@ -37,8 +40,10 @@
 
 self.toCleanReconnect = self._getConfigInt('timeout-clean-reconnect', 
self.TIMEOUT_CLEAN_RECONNECT)
 self.maxDelay = self._getConfigInt('max-delay', self.MAX_DELAY)
-self.keepAliveRetries = self._getConfigInt('keepalive-retries',
-   self.KEEPALIVE_RETRIES)
+self.keepAlive = self._getConfigBool('keepalive', self.KEEPALIVE)
+self.keepAliveRetries = self._getConfigInt('keepalive-retries', 
self.KEEPALIVE_RETRIES)
+self.keepAliveIdle = self._getConfigInt('keepalive-idle', 
self.KEEPALIVE_IDLE)
+self.keepAliveInterval = self._getConfigInt('keepalive-interval', 
self.KEEPALIVE_INTERVAL)
 
 def run(self):
 """Start the monitoring"""
@@ -96,13 +101,12 @@
 if not self.active:
 return
 
-if self.transport is not None:
+if self.transport is not None and self.keepAlive:
 sock = self.transport.getHandle()
 sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
-sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPIDLE, 1)
-sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPCNT,
-self.keepAliveRetries)
-sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPINTVL, 1)
+sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPIDLE, 
self.keepAliveIdle)
+sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPCNT, 
self.keepAliveRetries)
+sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPINTVL, 
self.keepAliveInterval)
 
 # Set status to up
 self._resultUp()

-- 
To view, visit https://gerrit.wikimedia.org/r/256942
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1f5e0993f1901def199e0fb4d3790836dc7db2f2
Gerrit-PatchSet: 1
Gerrit-Project: operations/debs/pybal
Gerrit-Branch: master
Gerrit-Owner: Mark Bergsma 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits