The purpose of this topic is to introduce using Aptify in a Windows Terminal Server environment. Contact an Aptify consultant for additional assistance with setting up a hosted solution for your Aptify environment.
Windows Terminal Server is a multi-user server core that provides the ability to host multiple, simultaneous client sessions on computers running Microsoft Windows Server software. Terminal Server is capable of directly hosting compatible multi-user client desktops and remote applications.
This topic contains the following sub-topics:
- About the Windows Terminal Server
- About Performance Issues When Using Windows Terminal Server
- Before Attempting to Use Windows Terminal Server
- Windows Terminal Server Hardware Recommendations
- Windows Terminal Server Pre-Installation Considerations
- Configuring a Windows Terminal Server for Aptify
- Maintaining Aptify Objects
About the Windows Terminal Server
Windows Terminal Server applies to servers running Windows Server 2008 and has become the standard for connecting remote users to remote applications.
One of the key components of Terminal Server is the use of Remote Desktop Protocol (RDP). This protocol allows a client desktop to communicate with the Terminal Server over the network. The user interface from the server appears on the client's desktop. In other words, applications execute on the server, and the corresponding user interface display is sent over a network connection to the client desktop.
The Terminal Server client does not perform any local processing for the applications. All processing occurs on the server machine. This means the instance of the graphical user interface, the presentation layer, is the only piece transmitted to the client. It is transparent to the user that multiple connections are running simultaneously. The user only sees his or her session, which is considered independent of any other running session. Multiple sessions are possible because of the use of separate session IDs for each client connection.
About Performance Issues When Using Windows Terminal Server
Applications that are run over a Terminal Server connection are actually executed on the server itself not on the client machine. This means that all of the Terminal Server client connections share the server's hardware and software resources. For example, two users are both connected to the same server through Terminal Server. If the users are both running Microsoft Word, two copies (instances) of Word are started on the server, each operating under a different user context based on the login. This could potentially cause some performance issues. Below is a list of areas that contribute to performance issues.
- Users not logging off: Users who simply close the terminal connection do not log off of the system. System resources are not released until the user logs off. One of the effects of not logging off is slower performance because of the limited resource pool availability. If the user logs off properly and does not simply close the connection, all processes associated with that user are terminated and the memory is released.
- Users contend for CPU time: As stated above, all users running the same application via Terminal Server are competing for the central CPU resources available on that server. Based on the number of applications being executed simultaneously and the performance of those applications, the other connected users may be negatively affected by poor performance.
- Users Contend for Disk Access: The input and output demands made using Terminal Server are greater than the standard connection to a server. This is because users compete for resources opening the same applications, but they also compete for server operating system disk accesses, such as DLLs.
- Users Contend for RAM: Memory resources are used from the same pool on the server. Even though each user has an independent session of Terminal Server running on their client machine, the RAM resources are still being pulled from the server. Note that users should only run applications that are necessary. If they open several applications, they will reduce the performance of other users connected to the server.
- Users Contend for Network Access: Network efficiency is critical for the success of Terminal Server. As with all network-based systems, the network provides the communication between the server and the client. However, an efficient network is even more important for a Terminal Server due to the amount of desktop activity actually being performed on the server itself.
- Users Contend for Server-Side Hardware Components: Competing for hardware resources is not normally an issue in a typical client/server environment. However, with the use of Terminal Server, the hardware is not client-based. Therefore, requesting the use of any hardware potentially causes a competition with others making similar requests.
Windows Server 2008 R2 and up includes the Windows System Resource Manager, which is intended to alleviate some of these issues. More information can be found at http://technet.microsoft.com/en-us/library/cc755056.aspx.
Before Attempting to Use Windows Terminal Server
Below is a list of areas to be aware of when attempting to run Aptify via Terminal Server.
- Single Object Cache: Only one object cache exists for a Aptify installation that uses Terminal Server since all users are actually running the application on the server itself. Therefore, each user connected to that server shares the same object cache.
- Object Cache Cannot Be Updated While Sessions Are Open: Since there is a single object cache for all users, a user cannot download updated objects while other users are using the application at the same time. Therefore, you must have all users log off and run the Object Repository Synchronization Utility as needed to keep the terminal server's object cache updated.
Despite these restrictions there are some recommendations that reduce the potential of encountering the issues described above. These recommendations include:
- Use the Object Repository Synchronizer utility to download all of the objects from the Object Repository to the ObjectCache folder on the terminal server. See Running the Object Repository Synchronizer.
- An administrator should install all required applications and services on the server running Terminal Server.
Windows Terminal Server Hardware Recommendations
The recommended hardware specifications for a Terminal Server hosting Aptify will vary from implementation to implementation, depending on the specific requirements of the client (as determined during the Aptify implementation process). The information in this topic is intended for Terminal Servers running Windows Server 2008 and up.
Aptify has successfully tested a Terminal Server environment with a computer that has the following hardware specifications:
- Dual 2.5 GHz Dual-core 4 processors
- 12 GB RAM
- 100 GB RAID 5 SCSI array
With this hardware, Aptify has successfully run tests using between 10 and 15 concurrent sessions, all with Aptify and Microsoft Outlook open.
Windows Terminal Server Pre-Installation Considerations
As previously noted, there are several items a user on the client side of Terminal Server can do to help performance. Conversely, there are also several items that can be done at the time the server is setup. This section focuses on optimizations suggestions for the server. Consider the following optimization suggestions before building a Terminal Server that will host Aptify:
- Create efficient background tasks that are not resource intensive.
- Configure and balance threads on the server for multi-users.
- Minimize splash screen usage.
- Minimize the use of animation.
- Minimize direct video access.
- Minimize the use of backgrounds (wallpapers).
- Install applications assuming access by multiple users.
- Enable policies to terminate disconnected and idle sessions.