From 4af77b60cebc2e3bdf1a393fde0d2c2672acecec Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Thu, 11 Feb 2016 11:33:45 +0100 Subject: [PATCH] Poller: Use the processlist when the number of maximum database connections was provided manually --- include/poller.php | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/include/poller.php b/include/poller.php index 03f0307712..9976e76db2 100644 --- a/include/poller.php +++ b/include/poller.php @@ -131,21 +131,28 @@ function poller_max_connections_reached() { return false; // Fetch the max value from the config. This is needed when the system cannot detect the correct value by itself. + // In that case we use the processlist to determine the current number of connections $max = get_config("system", "max_connections"); if ($max == 0) { $max = intval($r[0]["Value"]); if ($max == 0) return false; - } - $r = q("SHOW STATUS WHERE `variable_name` = 'Threads_connected'"); - if (!$r) - return false; + $r = q("SHOW STATUS WHERE `variable_name` = 'Threads_connected'"); + if (!$r) + return false; - $connected = intval($r[0]["Value"]); - if ($connected == 0) - return false; + $connected = intval($r[0]["Value"]); + if ($connected == 0) + return false; + } else { + $r = q("SHOW PROCESSLIST"); + if (!$r) + return false; + + $connected = count($r); + } $level = $connected / $max; -- 2.39.5