Load Balancing with GO-Global
Introduction
Load balancing is essential for optimizing performance and reliability in GO-Global environments. By distributing user sessions across multiple hosts, load balancing ensures efficient use of system resources, minimizes downtime, and delivers a seamless experience for end users.
GO-Global supports several load balancing configurations, including third-party load balancers, Relay Load Balancers with Dependent Hosts, and Independent Host setups. This article explains each configuration, outlines system requirements, and provides guidance for administrators implementing scalable and resilient GO-Global deployments—whether for small teams or enterprise-scale environments.
Load balancing allows GO-Global sessions to be distributed across multiple hosts. Load balancing is required when the host resource requirements for a deployment exceed the capacity of a single host computer. GO-Global can also be used with any third-party TCP/IP based load-balancing service.
GO-Global supports three load balancing configurations:
- A third-party load balancer routing connections to a collection of Farm Hosts that are managed by a Farm Manager. This configuration is recommended for large deployments (e.g., more than 500 concurrent users) when centralized management or session reconnect is required. In a load-balanced farm environment, administrators use the Admin Console on the Farm Manager to configure the published applications and settings on all the Farm Hosts. Administrators can manage and shadow sessions running on any host in the farm. Users can start sessions on one device (e.g., a computer in an office), disconnect, and then reconnect to their sessions from a different device (e.g., a home computer). This configuration provides optimal scalability, reliability, and stability for large deployments.
- A GO-Global Relay Load Balancer routing connections to a collection of Dependent Hosts. This configuration is ideal for smaller deployments (e.g., less than 500 concurrent users) where a third-party load balancer is not available. GO-Global load-balances client connections and ensures that sessions start successfully. If a session fails to start on the selected host, the Relay Load Balancer selects another host and tries again until it finds one that can support the session.
- A third-party load balancer balancing connections to a collection of Independent Hosts. This configuration is recommended for large deployments when session reconnect or centralized management is not required. Independent Hosts do not interact with other GO-Global Hosts running on the network and can have different configuration options and different published applications.
Load Balancing Requirements
- A GO-Global Host must be installed on each of the hosts in the cluster.
- For web deployments, if the load balancer is routing the connections from users’ browsers (to download AppController and the GO-Global Web App) to the GO-Global Hosts, each of the GO-Global Hosts in the cluster must have the GO-Global Web files installed. If the load balancer is only routing connections from AppController and the GO-Global Web App to the GO-Global Hosts, the web files do not need to be located on each GO-Global Host. In that case, the Web files should be installed on the machine running the web server.
- If an application saves any user specific settings in the registry (e.g., Microsoft Word), it is strongly recommended that users operate with roaming profiles rather than local profiles. Since there is no way of predicting which server the user will actually be logged onto in a balanced server farm, working with roaming profiles is the only way to ensure that user specific settings are available to the user at all times.
When using on-premises licenses in a load-balanced configuration, GraphOn recommends using a license server. For more information, see On-Premises Licensing.
When using cloud licenses, GraphOn recommends activating GO-Global on the Relay Server or Farm Manager. GraphOn does not recommend using cloud licenses when a third-party load balancer is used with Independent Hosts.
Independent Hosts
Independent Hosts are GO-Global Hosts that do not interact with other GO-Global Hosts running on the network. Independent Hosts appear in the Admin Console on the first level of the GO-Global Hosts tree view as an independent node. The GO-Global setup program configures hosts to operate as Independent Hosts. GO-Global clients can connect to Independent Hosts directly by specifying the name or IP address of the server in the Connection dialog or the location box of a web browser.
Clients can also connect to Independent Hosts through a third-party network load balancer that distributes client connections among several servers. However, this configuration only provides limited support for session reconnect. Specifically, it supports reconnecting users to their sessions if a network disruption breaks the connection, but it does not allow users to disconnect from their sessions and reconnect to them at a later time.
When using Independent Hosts together with a third-party load balancer, administrators must select the option to terminate disconnected sessions Immediately on the Session Shutdown tab of the Admin Console’s Host Options dialog. Otherwise, users will have an option in the Program Window to disconnect from their sessions, but if they select this option, they will generally be unable to reconnect to their sessions.
In addition, administrators must confirm that the value of the SessionTimeoutBrokenConnection property in each host’s HostProperties.xml file is set to 0. This is commonly the default, so often no change is required. This ensures that sessions will not remain running on the host after a broken connection.
If the Application Publishing Service is not running on a host, the host’s icon will be red. If the administrator does not have rights to access the host, the host’s icon will be yellow.
Relay Load Balancers
A Relay Load Balancer is a GO-Global Host that provides centralized control over one or more hosts. Relay Load Balancers maintain client connections and distribute GO-Global sessions across a set of load-balanced application hosts. Relay Load Balancers appear in the Admin Console on the first level of the list of All Hosts as nodes with one or more Dependent Hosts.To configure a GO-Global Host to operate as a Relay Load Balancer
- Select the desired host from the list of All Hosts.
- Click Tools | Host Options.
- Click the Configuration tab.
- Type the name or IP address of the computer in the Relay Load Balancer address box.
- Click OK.
- A message box is displayed indicating that the change will not take effect until the Application Publishing Service on the Relay Load Balancer has been restarted. Click OK.
- Stop and restart the GO-Global Application Publishing Service from the Services option in the Control Panel
After configuring a host to run as a Relay Load Balancer with one or more Dependent Hosts, GO-Global load-balances client connections and ensures that sessions start successfully. If a session fails to start on the selected host, the Relay Load Balancer selects another host and tries again until it finds one that can support the session.
The Relay Load Balancer starts new sessions on the Dependent Host with the lightest load, where the load on each Dependent Host is calculated as the number of sessions running on the Dependent Host divided by the Maximum sessions on this host value set in the Admin Console for the Dependent Host.
With Relay Load Balancers, all data transmitted between the clients and Dependent Hosts passes through the Relay Load Balancer. When setting up a relay server environment, be sure the same Log Folder path for the Relay Load Balancer exists on the Dependent Hosts. Otherwise, the Sign In dialog will not appear when users attempt to sign in to GO-Global. Create a log directory on the C: drive of each Relay Load Balancer (e.g., C:\Data\APS_LOGS) or use C:\Program Files\GraphOn\GO-Global\Log which already exists on the Dependent Host. Make sure this same path exists on the Dependent Host. In addition to changing the Log Folder path in the Admin Console, the \Log\Codes and \Log\Templates directories must be copied to the new location.
When a Relay Load Balancer is selected in the Admin Console, the number of processes running on all Dependent Hosts is not listed in the Admin Console's status bar.
A Relay Load Balancer requires a minimum of 1 GB of RAM and 2 processors. An additional 3 GB of RAM and 2 processors are required per 1,000 concurrent users.
Memory and CPU requirements for the Dependent Hosts are determined by the applications that are published and the number of users accessing the system. In general, a Dependent Host can support 12 “heavy” users/500 MHz CPU and 25 “light” users/500 MHz CPU. (“Heavy” is defined as a user running one or more large applications with continuous user interaction. “Light” is defined as a user running one application with intermittent user interaction.)
Dependent Hosts
A Dependent Host is a GO-Global Host that is connected to a Relay Load Balancer. GO-Global clients cannot connect directly to Dependent Hosts. Instead, they connect to the associated Relay Load Balancer, and the Relay Load Balancer selects one of the connected servers to host the session.To configure a GO-Global Host to operate as a Dependent Host
- Select the desired host from the list of All Hosts.
- Click Tools | Host Options.
- Click the Configuration tab.
- Click Application Host.
- Click Dependent Host.
- Type the IP address of the Relay Load Balancer in the Relay Load Balancer address box.
- Click OK.
- A message box is displayed indicating that the change will not take effect until the Application Publishing Service has been restarted. Click OK.
- Stop and restart the GO-Global Application Publishing Service from the Services option in the Control Panel.
When the Application Publishing Service is restarted, the Dependent Host will appear beneath the Relay Load Balancer in the Admin Console’s list of GO-Global Hosts. A Dependent Host colored yellow indicates that the host has been “orphaned;” in other words, that its Relay Load Balancer has gone down. If the Application Publishing Service is not running on a host, the host’s icon will be red.
Users are authenticated on Dependent Hosts, not on Relay Load Balancers. As a result, Dependent Hosts can be located on a different network than their associated Relay Load Balancer. For example, Dependent Hosts can be located behind a firewall on an internal, Active Directory network, and the associated Relay Load Balancer can be located in a demilitarized zone (DMZ) that is outside the firewall. If Integrated Windows authentication is used, clients and Dependent Hosts must be located on the same domain, but the Relay Load Balancer can be located on a different domain.
The same set of applications must be installed on each Dependent Host. GraphOn recommends that each application have the same installation path on each host.
Taking a Dependent Host Offline
Administrators can prevent new users from connecting to a GO-Global Host by setting the Maximum sessions on this host to 0 in the Session Startup tab. This allows administrators to remove a Dependent Host from a Relay Load Balancer environment without losing any user sessions.
- Select the desired Dependent Host from the list of All Hosts.
- Click Tools | Host Options.
- Click the Session Startup tab.
- In the Maximum sessions on this host box, set the value to 0. This will prevent new users from connecting to the host.
- Click OK.
- Monitor the number of sessions running on the host. When the number of sessions reaches zero, shut down the Dependent Host.
Conclusion
Implementing the right load balancing configuration is critical to achieving high availability, scalability, and consistent performance in GO-Global deployments. Whether using a third-party solution for large-scale environments or a GO-Global Relay Load Balancer for smaller implementations, proper setup ensures efficient session distribution and simplified management.
By following the configuration steps and best practices outlined in this article, administrators can maintain reliable, secure, and high-performing GO-Global systems capable of supporting hundreds or even thousands of concurrent users.
Are you an ISV exploring cloud-based application delivery? Contact us to learn how GO-Global can help you streamline software access for your end users. Or download a free trial to test it yourself.
