It Is Extremely Slow to Run Elliott over VPN Connection

It Is Extremely Slow to Run Elliott over VPN Connection

Q - Any ideas why Elliott runs extremely slowly or not at all when our users are remotely connected through our VPN? We have a 30MBx5MB connection (that is lightly loaded) to the WAN and in many cases our users are connected to fast connections as well. Our observations are that Elliott is totally unusable over a VPN connection…is this to be expected? If not, any ideas?

A - Running Elliott over VPN or over a WAN (e.g., Internet) has never worked well. It has to do with the latency and the chatty aspect of its network communication.  To run Elliott from outside the office, you need to use terminal service.  

Understanding Internet Latency
When looking at Internet speed, most people focus on the Upload or Download speed.  But latency is also an important factor that will determine whether certain applications will work well or not over the Internet. To determine the latency between your remote users' location and your office, ask your users to use the "ping" command, such as the following, after the VPN connection is established:
      ping 999.999.999.999
where 999.999.999.999 is the IP address of your PSQL server.  

To see a typical Internet latency speed, you can perform, for example,

      ping www.google.com

and the response will be something like:

Pinging www.google.com [216.58.218.228] with 32 bytes of data:
Reply from 216.58.218.228: bytes=32 time=106ms TTL=58
Reply from 216.58.218.228: bytes=32 time=117ms TTL=58
Reply from 216.58.218.228: bytes=32 time=114ms TTL=58
Reply from 216.58.218.228: bytes=32 time=131ms TTL=58

Ping statistics for 216.58.218.228:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 106ms, Maximum = 131ms, Average = 117ms

This means if you try to send a TCP/IP packet to www.google.com and wait for the response to come back, the round trip is 117ms.  Most of the browser applications are optimized to get the result within a few round trips.  So you can get your browsing result in less than one second if the back-end server has no other process to delay the response.

Elliott is not designed to minimize the number of round trips. To read each record, Elliott needs a round trip between your user's workstation and the PSQL server.  To just start up Elliott, it will require reading through hundreds of records and many folders and configuration files.  With 117ms latency, it makes Elliott run at a very slow speed.

On the other hand, if you perform a ping test on a local area network between a workstation and the PSQL server, you will find the latency is less than 1ms. This is the reason why Elliott works well under a local area network environment, but works very slowly when running directly over the Internet through a VPN connection.

Using a Terminal Server
To run Elliott from outside the office, you need to use terminal service. That is to say, you will have one or more terminal servers in your office that communicate to your PSQL server through the LAN (local area network).  Your remote user will use RDP client (Remote Desktop) to connect to the office terminal server.  Elliott actually runs on the terminal server in the office.  However, the screen update and keystrokes are transferred between the terminal server and the remote workstation over the Internet.

Because terminal service is optimized to reduce round trip traffic, when users run Elliott through a terminal server remotely, it feels as if the user is running Elliott locally.  As a matter of fact, Elliott is optimized to run over the terminal server.  At Netcellent, everyone's primary desktop is on the terminal server.  We log on to the terminal server for everything and rarely do anything on the local desktop other than bringing up the remote desktop client.  Each workstation has minimum setup and can be easily replaced.  When we go home or on the road, we can access the office's terminal server desktop as if we are in the office.

Generally speaking, you will find Elliott works very well over the remote desktop if the latency is around 100ms or less. In some situations, the latency can be very high, then Elliott may not work well over the remote desktop.  The common scenarios are:
  • Internet Connection Over the Satellite - This may happen if your user is in a very remote area - on a ship, oil platform, remote area or in the wilderness. This satellite Internet latency is typically over 300ms and can be as high as 1,000ms. This will not work for remote desktop applications.
  • Overseas - Sometimes the latency between overseas locations and the US office can be high. When it is as high as 200ms, remote desktop applications still work, but you may feel that response is sluggish.  Several of our users try to use Remote Desktop in China to connect to their US offices with no success.  But when other users try the same thing in areas immediately outside of China, like Hong Kong or Taiwan, it works well.
Generally speaking, you will find that Elliott runs faster on a terminal server.  If the terminal server is also the PSQL server, then you will find that Elliott runs very fast indeed.

In conclusion, we recommend that our users run Elliott on the terminal server.  This is especially true if you need to run Elliott remotely over the Internet.


EMK


    • Related Articles

    • Elliott Running Extremely Slow on Windows 8 with Trend Micro Anti Virus Software Installed

      We have received reports from our users that Elliott may run extremely slow on Windows 8 with Trend Micro anti-virus software installed. This happens with both Elliott V7.5 and 8.0. When the Trend Micro anti-virus software is disabled, Elliott ...
    • Slow PSQL Relational Engine Performance

      Release Date: 12/15/2017 Many users encounter situations where a particular relational engine SQL query can sometimes be slow. This can be complicated to diagnose due to a lot of reasons. Sometimes it's because of a SQL SELECT statement that's not ...
    • How to Run Elliott V8 on Tablets or Mobile Devices

      Q - I would like to know how to run Elliott V8 on tablets or mobile devices. A - Elliott can run directly on Microsoft Surface Pro as a native application. That's not much of a surprise since Surface Pro runs Windows OS. Over the years, people have ...
    • Restart PSQL Engine to Fix Slow IO Performance Issue

      Release Date: 03/26/2022 Version: PSQL 13 Summary A slow Elliott IO scenario has been observed. After restarting the PSQL services, the problem is resolved. Scenario An Elliott user reported that an Elliott defer processing function used to take 10 ...
    • Error Connecting VPN from Windows 10 to Windows 2008 Server

      Q - I recently upgraded my machine to Windows 10. When I tried to connect VPN to my office VPN server, which resides on a Windows 2008 server, it does not work. I receive the following error message: The remote connection was denied because the user ...