Aaron Schulz has uploaded a new change for review.

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

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(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/48/181248/1

diff --git a/includes/db/LoadBalancer.php b/includes/db/LoadBalancer.php
index f1b3238..6d07040 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;
+
+       // Warn when this many connection are held
+       const CONN_HELD_WARN = 10;
 
        /**
         * @param array $params Array with keys:
@@ -752,6 +757,14 @@
                        $server['dbname'] = $dbNameOverride;
                }
 
+               // Log when many connection are made on requests
+               if ( ++$this->connsOpened >= self::CONN_HELD_WARN ) {
+                       $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 );
@@ -923,6 +936,7 @@
                        'foreignFree' => array(),
                        'foreignUsed' => array(),
                );
+               $this->connsOpened = 0;
        }
 
        /**
@@ -939,6 +953,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: newchange
Gerrit-Change-Id: Idcb7233bc418a793b87f4d445807be5eced12d95
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Aaron Schulz <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to