DOKK / manpages / debian 12 / x2gobroker-loadchecker / x2gobroker-loadchecker.8.en
x2gobroker-loadchecker(8) X2Go Session Broker x2gobroker-loadchecker(8)

x2gobroker-loadchecker - Load checker service for X2Go Session Broker


x2gobroker-loadchecker
[ options ]

x2gobroker-loadchecker is a service that collects system load metrics from broker-associated X2Go Servers.

When load-balancing shall be used, the simplest way to detect "server load" is counting the numbers of running and suspended sessions. No extra daemon nor service is required for this. The server with the least amount of sessions will be selected for starting the next X2Go session.

However, simply counting running and suspended sessions per X2Go Server as a representative for the server load can be highly inaccurate. A better approach is checking each X2Go Server's load in regular intervals by the x2gobroker-loadchecker daemon (running on the broker host) and querying the x2gobroker-loadchecker daemon before selecting the best server on session startup requests.

The x2gobroker-loadchecker collects server metrics of all associated X2Go Servers and keeps the latest load factors in RAM. Once the broker needs load factors of a certain session profile (i.e., of all servers configured in that session profile), the x2gobroker-loadchecker delivers that info immediately. The remembered load factors may not be 100% up-to-date (default: collected within the last five minutes), but the response time of the load checker is much faster than a query to all possible X2Go Servers would be.

The load factor calculation uses this algorithm:


( memAvail[MByte]/1000 ) * numCPUs * typeCPUs[MHz]
load-factor = --------------------------------------------------
loadavg*100 * numSessions

The higher the load-factor, the more likely that a server will be chosen for the next to be allocated X2Go session.

The communication between X2Go Session Broker and the Load Checker Service is handled through a unix domain socket file (<RUNDIR>/x2gobroker/x2gobroker-loadchecker.socket).

This command is normally started through the host's init system.

x2gobroker-loadchecker accepts the following common options:

Display a help with all available command line options and exit.
Fork this application to background and detach from the running terminal.
Custom PID file location when daemonizing (default: <RUNDIR>/x2gobroker/x2gobroker-loadchecker.pid).
Directory where stdout/stderr will be redirected after having daemonized (default: /var/log/x2gobroker/).
File name of the unix domain socket file used for communication between broker and load checker service.
User ownership of the <LOADCHECKERSOCKET> file.
Group ownership of the <LOADCHECKERSOCKET> file.
Set these file permissions for the <LOADCHECKERSOCKET> file. Use numerical permissions (e.g. 0640).

<RUNDIR>/x2gobroker/x2gobroker-loadchecker.socket

This manual has been written for the X2Go project by Mike Gabriel <mike.gabriel@das-netzwerkteam.de>.

Apr 2020 Version 0.0.4.x