Subscribe to this thread
Home - General / All posts - Manifold Server speed problem
Mike Pelletier

2,087 post(s)
#27-Jan-23 19:14

Hi All, I'm looking for ideas on why my server is super slow when setting it up with Manifold Server and connecting from a remote computer as a client. Essentially, I'm trying to serve out Manifold data to multiple users in the organization with acceptable performance and I'm struggling.

What I've tried:

  1. Running Manifold Server on my local system (above average workstation specs) with Manifold (non-server) runs fast. No redraw/refresh latency issues.
  2. Running Manifold Server on a high-powered virtual machine (SSD, 8 vCPUs, dedicated/pass-through Nvidea GRID K1 GPU, Windows 10 OS, 40GB RAM) with Manifold (non-server) runs fast. Again, no redraw/refresh latency issues.
  3. However, when I try running the Manifold (non-server) as a "client" from my workstation connecting to the VM (running Manifold Server), it runs unacceptably slow. For example, >4 second delay for simple redraw/refresh for about 5 layers with biggest being about 20,000 parcels. Also, it takes about 2-3 seconds to just turn on or off layers. And as stated in item 2), it's nearly instantaneous if I try directly on the server VM, so there's no issue with that by itself.

Worth noting, the bandwidth between the workstation (client) and VM (server) is > 800 Mbps, so the network connection seems plenty fast.

Is there any difference in running Manifold Server (or MySQL) on Windows Server OS vs Windows 10 OS? I assume not, but correct me if I'm wrong there. Again, I have no issues if Manifold (non-server) is running on the same machine as Manifold Server, so I doubt this is an issue.

Dimitri


7,233 post(s)
#28-Jan-23 07:09

Mike,

Let me confirm the difference between your case 2 and 3:

As I first understood it, in both cases there are two machines. Let's call them A and B. Machine A is running a Manifold Server instance (Server) and machine B is running a Manifold Release 9 desktop installation (Desktop). In both case 2 and case 3, you launch Desktop on machine B and create and use a Database: manifoldserver data source that's connected to Server on machine A, right? But in case 2 everything is fast while in case 3 there are some delays, is that it? If that's it, I'd focus on the difference between the machines and the software stack used in cases 2 and 3.

It could be I misunderstood your description, and the difference between cases 2 and 3 is that in case 2 both the Server instance and the Desktop instance are running on machine A, whereas in case 3 the Server instance is running on machine A with the Desktop instance running on machine B with some kind of network in between the two. Is that it?

If so, then I'd guess the issue has something to do with the network software stack in use. Could it be something about how the VM virtual network connects to physical networks or something in the network stack has some sort of cache or latency? Those things are all very tricky, highly specific to how the VM works, and are not guaranteed to match how Windows does it. You end up debugging how the VM or the network stack is different from how it is in native Windows. I note that's one reason Manifold tech support doesn't support virtual machines.

I use Server a lot, and always when I run it with a network between the Server machine and the Desktop machines, it seems instantaneous regardless of the machines or network involved. I run with Windows 10 or 11.

You might want to try setting up Server on a real (that is, non-VM) machine, setting up Desktop on a different machine, and verifying that on the Desktop instance you can indeed create and use a Database: manifoldserver data source to the Server machine and it runs fast even with the network in between.

To eliminate strange effects from "smart" switches or other gear that may be trying to "help" the speed of the network with tricky caching or whatever, it might be useful to make the network connection as simple as possible, such as having the two machines next to each other and connecting an ethernet cable between the two: no router required. Modern ethernet ports will automatically flip to handle direct connections like that and you can connect using the IP address of the destination machine.

Once you see that runs fast you can start adding whatever else is in the network, like "smart" switches or whatever, to see if adding something like that suddenly causes a reduction in performance. If it's nothing in the network when Server and Desktop are running on real, physical machines, then maybe you can look into how the VM is configured for a connection to a physical network.

I realize the above is a kind of hit or miss approach to figuring out what's going on, but it's probably something to try anyway.

adamw


10,391 post(s)
#30-Jan-23 06:36

As Dimitri, I do not completely understand the configuration in 2 and 3. Let's recap:

Case 1 - a single physical machine, no VMs, both server and client on that machine (this part I got). Fast.

Case 2 - a single physical machine, but there is a VM on it, the server is on the VM, the client is not on the VM? Or the client is also on the VM? Fast.

Case 3 - two physical machines, one with a VM, the server is on the VM, the client is not on the VM and on a different physical machine? Or still a single physical machine, the server on is on the VM, and the client is not? Slow.

Obviously, the difference between case 2 and case 3 is the network interface. That does not mean that the network interface is bad, maybe the way we (Manifold) interact with it is bad, so we'd run some tests, but in order to do that we have to know what specific network interface is slowing things down.

There's no difference between running Manifold Sever on Windows Server or Windows 10.

Mike Pelletier

2,087 post(s)
#31-Jan-23 19:06

Sorry for not being clear. Case 1 and 2 are both all on one machine, while case 3 is two different machines. Forgot to mention that in case 1, my Manifold project was stored on my standard network drive (a VM where I have been storing and working from for years with Manifold), yet it was fast. All was good, so then we tried putting Manifold Server on that VM and accessing the data from my workstation. Slow. So then my IT Dept. spun up a higher powered VM and put Manifold Server on it. Accessing this from my workstation showed no improvement in speed, indicating the general speed specs of the standard VM was not the issue. Case 2 is accessing Manifold Server on this higher powered VM from a Manifold project on that VM (no network involved).

Tried putting shapefiles on my higher powered VM and accessing them from my workstation. There's an initial short load time and then fast afterward.

Tried installing MySQL on VM. It also is slow providing Manifold data to my workstation. However, just looking at a Manifold table on the VM from my workstation using MySQL Workbench seems fast, although the tables are pretty small so maybe hard to tell.

Something else of note. I run Google satellite images as a base map pretty much all the time when using Manifold. Usually it is very fast and occasionally it spins a bit, but every so often it spins and then locks up. The only way to unfreeze it is to click on another program and then back to Manifold, which causes it to instantly work fine.

It does seem like Manifold Server doesn't like our network. My IT guy says it is pretty standard without any fancy switches. What details would be helpful to know about our network? Happy to try other scenarios but I'm down to one activation left.

Dimitri


7,233 post(s)
#01-Feb-23 06:04

Happy to try other scenarios but I'm down to one activation left.

When debugging issues like this it's best to work with tech support, as they can issue replacement licenses, etc, to try different variations without burning up activations. I'd recommend contacting tech support.

Mike Pelletier

2,087 post(s)
#21-Feb-23 17:54

Tech support and I basically determined that Hyper-V virtual machines are introducing slowdowns with Mfd Server. In my case they are so significant as to make it unworkable. Fortunately, my IT group was able to remove the need for a virtual machine.

Manifold User Community Use Agreement Copyright (C) 2007-2021 Manifold Software Limited. All rights reserved.