[
https://issues.apache.org/jira/browse/GUACAMOLE-102?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15895446#comment-15895446
]
Nick Couchman commented on GUACAMOLE-102:
-----------------------------------------
So, I was looking at the history of this as well as the commit request that was
originally opened for this and was thinking about a potential approach. It
seems like the changes to the Guacamole Client code could remain pretty minimal:
- Implement a connection weight field for individual connections, but only
reference it when the connection is part of a Connection Group of type
BALANCING. I haven't dug into the parameter vs. attribute vs. arbitrary data
issue mentioned in the commit request, but a simple connection weight field
that is a positive integer should do the trick.
- Tweak the Guacamole balancer algorithm from round-robin to weighted
round-robin, where the default weight of each connection is 1 if not defined,
can be set manually for the connection, or can be externally manipulated.
The part that I think bears further discussion is the "some other means" of
manipulating the weight. Is that something that really belongs in the
Guacamole Client code, or is it something that, if hooks are provided, might
belong to some other component or external application? When you start talking
about an agent that goes on a remote server to monitor the server and adjust
the weight, the scope of the "guacamole client" expands a little bit.
Also, if we decide load monitoring/balancing is within the scope of the
guacamole client, there might be some other existing ways to monitor load that
don't require reinventing the wheel. SNMP comes to mind, since agents are
readily available and easily configurable on most platforms, and there are also
things like WinRM and WMI that might also provide the required information for
Windows hosts. However, if you use existing technologies like SNMP that would
require something else - either code inside Guacamole or another
daemon/job/script - to periodically poll the servers in the connection group
and adjust the weight.
Thoughts?
> Loadbalancing based on resource
> -------------------------------
>
> Key: GUACAMOLE-102
> URL: https://issues.apache.org/jira/browse/GUACAMOLE-102
> Project: Guacamole
> Issue Type: New Feature
> Components: guacamole, guacamole-auth-jdbc,
> guacamole-auth-jdbc-mysql, guacamole-auth-jdbc-postgresql, guacamole-client,
> RDP
> Affects Versions: 0.9.10-incubating
> Environment: CentOS Linux 7 (Core)
> Linux 3.10.0-327.10.1.el7.x86_64
> Reporter: Werner Novak
> Priority: Minor
>
> Implementation of an resource based (CPU, Memory, I/O, Loggedin User)
> balancing in opposite to the current implemented guacamole connections round
> robin. This is needed because of an large RDP infrastructure (300+ TS), where
> the terminal server been accessed via multiple RDP load balancers during
> migration.
> A prototype has been developed in a guacamole fork
> https://github.com/wnovak/incubator-guacamole-client.git
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)