$r = q("SHOW PROCESSLIST");
$s = array();
+ $processes = 0;
$states = array();
foreach ($r AS $process) {
$state = trim($process["State"]);
- if (!in_array($state, array("", "init", "statistics")))
+ if (!in_array($state, array("", "init", "statistics"))) {
++$states[$state];
+ ++$processes;
+ }
}
// query end
// Sending data
// updating
$statelist = "";
- $processes = 0;
foreach ($states AS $state => $usage) {
if ($statelist != "")
$statelist .= ", ";
$statelist .= $state.": ".$usage;
- ++$processes;
}
return(array("list" => $statelist, "amount" => $processes));
}
$processlist = dbm::processlist();
if ($processlist["list"] != "") {
- logger("Processes: ".$processlist["amount"]." - Processlist: ".$processlist["list"], LOGGER_DEBUG);
- if ($processlist["amount"] > 5)
+ logger("Processcheck: Processes: ".$processlist["amount"]." - Processlist: ".$processlist["list"], LOGGER_DEBUG);
+
+ $max_processes = get_config('system', 'max_processes_backend');
+ if (intval($max_processes) == 0)
+ $max_processes = 5;
+
+ if ($processlist["amount"] > $max_processes) {
+ logger("Processcheck: Maximum number of processes for backend tasks (".$max_processes.") reached.", LOGGER_DEBUG);
return;
+ }
}
if (poller_max_connections_reached())
// Log the type of database processes
$processlist = dbm::processlist();
if ($processlist["amount"] != "") {
- logger("Processes: ".$processlist["amount"]." - Processlist: ".$processlist["list"], LOGGER_DEBUG);
- if ($processlist["amount"] > 5)
+ logger("Processcheck: Processes: ".$processlist["amount"]." - Processlist: ".$processlist["list"], LOGGER_DEBUG);
+
+ $max_processes = get_config('system', 'max_processes_backend');
+ if (intval($max_processes) == 0)
+ $max_processes = 5;
+
+ 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 available database connections to let the frontend be accessible at any time
if(!$install) {
$db = new dba($db_host, $db_user, $db_pass, $db_data, $install);
- unset($db_host, $db_user, $db_pass, $db_data);
+ unset($db_host, $db_user, $db_pass, $db_data);
/**
* Load configs from db. Overwrite configs from .htconfig.php
$processlist = dbm::processlist();
if ($processlist["list"] != "") {
- logger("Processes: ".$processlist["amount"]." - Processlist: ".$processlist["list"], LOGGER_DEBUG);
- // More than 20 running database processes?
- // The system is too busy, so quit.
- if ($processlist["amount"] > 20)
- system_unavailable();
+ logger("Processcheck: Processes: ".$processlist["amount"]." - Processlist: ".$processlist["list"], LOGGER_DEBUG);
+
+ $max_processes = get_config('system', 'max_processes_frontend');
+ if (intval($max_processes) == 0)
+ $max_processes = 20;
+
+ if ($processlist["amount"] > $max_processes) {
+ logger("Processcheck: Maximum number of processes for frontend tasks (".$max_processes.") reached.", LOGGER_DEBUG);
+ return;
+ }
}
$maxsysload_frontend = intval(get_config('system','maxloadavg_frontend'));
$link = 'toggle_mobile?off=1&address=' . curPageURL();
}
$a->page['footer'] = replace_macros(get_markup_template("toggle_mobile_footer.tpl"), array(
- '$toggle_link' => $link,
- '$toggle_text' => t('toggle mobile')
- ));
+ '$toggle_link' => $link,
+ '$toggle_text' => t('toggle mobile')
+ ));
}
/**