This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch master in repository x2gobroker. from f8acb9d fix-up for eaa336c4012348f564de492309efa96eecb1c8bf new 1466cdc fix loadchecker integration in base_broker.py new be73fe8 x2gobroker-agent.pl: Fall-back CPU detection for virtualized systems (e.g. QEMU hosts). new 0ddf164 LoadChecker.loadchecker(): Report about query failures, as well, in query cycle summary. The 3 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: debian/changelog | 4 ++++ lib/x2gobroker-agent.pl | 13 +++++++++++++ x2gobroker/brokers/base_broker.py | 3 ++- x2gobroker/loadchecker.py | 15 ++++++++++----- 4 files changed, 29 insertions(+), 6 deletions(-) -- Alioth's /srv/git/code.x2go.org/x2gobroker.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2gobroker.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2gobroker. commit be73fe8a539d97a5eb43d440befd53b153e4819c Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Sat Mar 28 00:42:55 2015 +0100 x2gobroker-agent.pl: Fall-back CPU detection for virtualized systems (e.g. QEMU hosts). --- debian/changelog | 2 ++ lib/x2gobroker-agent.pl | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/debian/changelog b/debian/changelog index 501d914..7f3bbf8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -254,6 +254,8 @@ x2gobroker (0.0.3.0-0x2go1) UNRELEASED; urgency=low kernels newer than v3.14 offer the MemAvailable: field in /proc/meminfo. - x2gobroker-agent.pl: Fix regexp for detecting number of CPUs and CPU frequency. + - x2gobroker-agent.pl: Fall-back CPU detection for virtualized systems (e.g. + QEMU hosts). * debian/control: + Provide separate bin:package for SSH brokerage: x2gobroker-ssh. + Replace LDAP support with session brokerage support in LONG_DESCRIPTION. diff --git a/lib/x2gobroker-agent.pl b/lib/x2gobroker-agent.pl index 4926cce..2256f8c 100755 --- a/lib/x2gobroker-agent.pl +++ b/lib/x2gobroker-agent.pl @@ -23,6 +23,7 @@ use strict; use File::Basename; use File::Which; +use POSIX; my @available_tasks = ( "availabletasks", @@ -208,6 +209,18 @@ if ( $mode eq 'checkload' ) { } close(FILE); + # in virtual hosts, we need to obtain the CPU frequency from the cpu MHz: field. + if ($typeCPU == 0) { + open FILE, "< /proc/cpuinfo" or die return ("Cannot open /proc/cpuinfo: $!"); + foreach(<FILE>) { + if ( m/^cpu\ MHz\s+:\s+(\S+)/ ) { + $typeCPU = ceil($1); + $numCPU += 1; + } + } + close(FILE); + } + print sprintf 'loadavgXX:%1$d', $loadavgXX; print "\n"; print sprintf 'memAvail:%1$d', $memAvail; -- Alioth's /srv/git/code.x2go.org/x2gobroker.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2gobroker.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2gobroker. commit 0ddf164399d2cd9101896faf4fb8546278a67548 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Sat Mar 28 00:43:44 2015 +0100 LoadChecker.loadchecker(): Report about query failures, as well, in query cycle summary. --- debian/changelog | 2 ++ x2gobroker/loadchecker.py | 15 ++++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/debian/changelog b/debian/changelog index 7f3bbf8..e7d8539 100644 --- a/debian/changelog +++ b/debian/changelog @@ -256,6 +256,8 @@ x2gobroker (0.0.3.0-0x2go1) UNRELEASED; urgency=low frequency. - x2gobroker-agent.pl: Fall-back CPU detection for virtualized systems (e.g. QEMU hosts). + - LoadChecker.loadchecker(): Report about query failures, as well, in query + cycle summary. * debian/control: + Provide separate bin:package for SSH brokerage: x2gobroker-ssh. + Replace LDAP support with session brokerage support in LONG_DESCRIPTION. diff --git a/x2gobroker/loadchecker.py b/x2gobroker/loadchecker.py index d21e776..61ada88 100644 --- a/x2gobroker/loadchecker.py +++ b/x2gobroker/loadchecker.py @@ -157,6 +157,7 @@ class LoadChecker(threading.Thread): # all configured/enabled broker backends self.brokers = {} num_queries = 0 + num_failed_queries = 0 for backend in self.broker_backends: if self.logger: self.logger.debug('LoadChecker.loadchecker(): load checker thread waking up...') @@ -175,9 +176,14 @@ class LoadChecker(threading.Thread): self.server_load[backend][profile_id] = {} remote_agents = self.brokers[backend].get_all_remote_agents(profile_id) for remote_agent in remote_agents: - self.server_load[backend][profile_id][remote_agent[u'hostname']] = x2gobroker.agent.checkload(remote_agent, logger=self.logger) - if self.logger: self.logger.info('LoadChecker.loadchecker(): contacted remote broker agent for backend={backend}, profile_id={profile_id}, hostname={hostname}, new load factor is: {lf}'.format(backend=backend, profile_id=profile_id, hostname=remote_agent[u'hostname'], lf=self.server_load[backend][profile_id][remote_agent[u'hostname']])) + _load_factor = x2gobroker.agent.checkload(remote_agent, logger=self.logger) num_queries += 1 + if _load_factor is None: + if self.logger: self.logger.info('LoadChecker.loadchecker(): backend={backend}, profile_id={profile_id}, hostname={hostname}, load factor not available'.format(backend=backend, profile_id=profile_id, hostname=remote_agent[u'hostname'])) + num_failed_queries += 1 + else: + if self.logger: self.logger.info('LoadChecker.loadchecker(): contacted remote broker agent for backend={backend}, profile_id={profile_id}, hostname={hostname}, new load factor is: {lf}'.format(backend=backend, profile_id=profile_id, hostname=remote_agent[u'hostname'], lf=_load_factor)) + self.server_load[backend][profile_id][remote_agent[u'hostname']] = _load_factor if time_to_sleep > 0: if self.logger: self.logger.debug('LoadChecker.loadchecker(): sleeping for {secs}secs before querying next server'.format(secs=time_to_sleep)) time.sleep(time_to_sleep) @@ -207,12 +213,11 @@ class LoadChecker(threading.Thread): time.sleep(self.load_checker_intervals) if num_queries > 0: if time_to_sleep > 0: - if self.logger: self.logger.debug('LoadChecker.loadchecker(): performed {num} queries, sleeping for {secs}secs before starting next query cycle'.format(num=num_queries, secs=self.load_checker_intervals - time_to_sleep * num_queries)) + if self.logger: self.logger.debug('LoadChecker.loadchecker(): performed {num} queries (failures: {num_failures}), sleeping for {secs}secs before starting next query cycle'.format(num=num_queries, num_failures=num_failed_queries, secs=self.load_checker_intervals - time_to_sleep * num_queries)) time.sleep(self.load_checker_intervals - time_to_sleep * num_queries) time_to_sleep = self.load_checker_intervals / (num_queries +1) else: - if num_queries == 0: - if self.logger: self.logger.warning('LoadChecker.loadchecker(): performed {num} queries in this cycle, if this message keeps repeating itself, consider disabling the X2Go Broker Load Checker daemon'.format(num=num_queries, secs=self.load_checker_intervals - time_to_sleep * num_queries)) + if self.logger: self.logger.warning('LoadChecker.loadchecker(): performed {num} queries (failures: {num_failures}) in this cycle, if this message keeps repeating itself, consider disabling the X2Go Broker Load Checker daemon'.format(num=num_queries, num_failures=num_failed_queries, secs=self.load_checker_intervals - time_to_sleep * num_queries)) time_to_sleep = 0 def stop_thread(self): -- Alioth's /srv/git/code.x2go.org/x2gobroker.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2gobroker.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2gobroker. commit 1466cdc04ebf6b943f12f31593dcbdb4355d1168 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Sat Mar 28 00:42:02 2015 +0100 fix loadchecker integration in base_broker.py --- x2gobroker/brokers/base_broker.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x2gobroker/brokers/base_broker.py b/x2gobroker/brokers/base_broker.py index f7fe912..bec6d03 100644 --- a/x2gobroker/brokers/base_broker.py +++ b/x2gobroker/brokers/base_broker.py @@ -38,6 +38,7 @@ import x2gobroker.config import x2gobroker.defaults import x2gobroker.agent import x2gobroker.x2gobroker_exceptions +import x2gobroker.loadchecker from x2gobroker.loggers import logger_broker, logger_error @@ -1453,7 +1454,7 @@ class X2GoBroker(object): # dynamic load-balancing - if self.use_load_checker(self, profile_id): + if self.use_load_checker(profile_id): busy_servers_temp = copy.deepcopy(busy_servers) load_factors = x2gobroker.loadchecker.checkload(self.backend_name, profile_id) if load_factors: -- Alioth's /srv/git/code.x2go.org/x2gobroker.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2gobroker.git