jenkins-bot has submitted this change and it was merged.
Change subject: Log to DBPerformance log when many LB connections are acquired
......................................................................
Log to DBPerformance log when many LB connections are acquired
Change-Id: Idcb7233bc418a793b87f4d445807be5eced12d95
---
M includes/db/LoadBalancer.php
1 file changed, 15 insertions(+), 0 deletions(-)
Approvals:
Ori.livneh: Looks good to me, approved
Umherirrender: Looks good to me, approved
jenkins-bot: Verified
diff --git a/includes/db/LoadBalancer.php b/includes/db/LoadBalancer.php
index f789d56..f11ef0c 100644
--- a/includes/db/LoadBalancer.php
+++ b/includes/db/LoadBalancer.php
@@ -58,8 +58,13 @@
private $mLaggedSlaveMode;
/** @var string The last DB selection or connection error */
private $mLastError = 'Unknown error';
+ /** @var integer Total connections opened */
+ private $connsOpened = 0;
/** @var ProcessCacheLRU */
private $mProcCache;
+
+ /** @var integer Warn when this many connection are held */
+ const CONN_HELD_WARN_THRESHOLD = 10;
/**
* @param array $params Array with keys:
@@ -735,6 +740,14 @@
$server['dbname'] = $dbNameOverride;
}
+ // Log when many connection are made on requests
+ if ( ++$this->connsOpened >= self::CONN_HELD_WARN_THRESHOLD ) {
+ $masterAddr = $this->getServerName( 0 );
+ wfDebugLog( 'DBPerformance', __METHOD__ . ": " .
+ "{$this->connsOpened}+ connections made
(master=$masterAddr)\n" .
+ wfBacktrace( true ) );
+ }
+
# Create object
try {
$db = DatabaseBase::factory( $server['type'], $server );
@@ -906,6 +919,7 @@
'foreignFree' => array(),
'foreignUsed' => array(),
);
+ $this->connsOpened = 0;
}
/**
@@ -922,6 +936,7 @@
if ( $conn === $candidateConn ) {
$conn->close();
unset(
$this->mConns[$i1][$i2][$i3] );
+ --$this->connsOpened;
$done = true;
break;
}
--
To view, visit https://gerrit.wikimedia.org/r/181248
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Idcb7233bc418a793b87f4d445807be5eced12d95
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Aaron Schulz <[email protected]>
Gerrit-Reviewer: Chad <[email protected]>
Gerrit-Reviewer: Ori.livneh <[email protected]>
Gerrit-Reviewer: Parent5446 <[email protected]>
Gerrit-Reviewer: Umherirrender <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits