1
0
Fork 0

Merge pull request #2658 from annando/1607-maxload

Central Backend/Frontend detection when checking for overload
This commit is contained in:
Tobias Diekershoff 2016-07-02 21:52:48 +02:00 committed by GitHub
commit 598a9f76a6
4 changed files with 111 additions and 60 deletions

View file

@ -11,7 +11,6 @@ if (!file_exists("boot.php") AND (sizeof($_SERVER["argv"]) != 0)) {
}
require_once("boot.php");
require_once("dbm.php");
function poller_run(&$argv, &$argc){
global $a, $db;
@ -27,19 +26,8 @@ function poller_run(&$argv, &$argc){
unset($db_host, $db_user, $db_pass, $db_data);
};
$max_processes = get_config('system', 'max_processes_backend');
if (intval($max_processes) == 0)
$max_processes = 5;
$processlist = dbm::processlist();
if ($processlist["list"] != "") {
logger("Processcheck: Processes: ".$processlist["amount"]." - Processlist: ".$processlist["list"], LOGGER_DEBUG);
if ($processlist["amount"] > $max_processes) {
logger("Processcheck: Maximum number of processes for backend tasks (".$max_processes.") reached.", LOGGER_DEBUG);
return;
}
}
if ($a->max_processes_reached())
return;
if (poller_max_connections_reached())
return;
@ -74,16 +62,9 @@ function poller_run(&$argv, &$argc){
while ($r = q("SELECT * FROM `workerqueue` WHERE `executed` = '0000-00-00 00:00:00' ORDER BY `created` LIMIT 1")) {
// Log the type of database processes
$processlist = dbm::processlist();
if ($processlist["amount"] != "") {
logger("Processcheck: Processes: ".$processlist["amount"]." - Processlist: ".$processlist["list"], LOGGER_DEBUG);
if ($processlist["amount"] > $max_processes) {
logger("Processcheck: Maximum number of processes for backend tasks (".$max_processes.") reached.", LOGGER_DEBUG);
return;
}
}
// Constantly check the number of parallel database processes
if ($a->max_processes_reached())
return;
// Constantly check the number of available database connections to let the frontend be accessible at any time
if (poller_max_connections_reached())