GUI VMs - How to get reasonable GUI performance?


nukeman

Recommended Posts

I have a headless Unraid 6.1.3 instance running on a SuperMicro X10SLH-F-O with a E3-1231 v3 processor.

 

I have successfully set up several Ubuntu Server VMs and now would like to move on to something with a GUI.  I'd like to try either Ubuntu Desktop or Windows.  My first attempt at Ubuntu Desktop (15.04) was less than successful.  I got it to install but performance was pretty poor using the built in noVNC: the mouse response was sluggish, unity was slow etc.  When I initially configured the VM I chose the VNC option for Graphics Card.  The motherboard does have onboard graphics (an ASPEED controller), but when I selected that I lost the ability to use noVNC.

  • Should I have picked VNC during the creation of the VM?
  • If I don't pick VNC, how do I access the VM?  Some external VNC Viewer?
  • I made sure that both my motherboard and my processor support VT-x but should I have used something like the E3-1246 v3 that has onboard graphics? (Intel HD Graphics P4600)
  • Would performance be better if I added a separate graphics card?  Is this what GPU passthrough is all about?
  • We use windows and rdp at work.  Usually it's impossible to tell if I'm using a remote session, performance is that good.  Is it reasonable to expect that level of performance from KVM?
  • What's the best technology for remotely accessing a Ubuntu VM? VNC, RDP, Teamviewer, Guacamole, something else?

 

I have no intention of gaming on the VM, just looking for a usable GUI environment.  BTW, I did get an Xbuntu instance up and running with better performance, but eventually I'd like to have a Windows VM, so I figured I better try to get this worked out.  Thanks for the help!

Link to comment

I have a headless Unraid 6.1.3 instance running on a SuperMicro X10SLH-F-O with a E3-1231 v3 processor.

 

I have successfully set up several Ubuntu Server VMs and now would like to move on to something with a GUI.  I'd like to try either Ubuntu Desktop or Windows.  My first attempt at Ubuntu Desktop (15.04) was less than successful.  I got it to install but performance was pretty poor using the built in noVNC: the mouse response was sluggish, unity was slow etc.  When I initially configured the VM I chose the VNC option for Graphics Card.  The motherboard does have onboard graphics (an ASPEED controller), but when I selected that I lost the ability to use noVNC.

  • Should I have picked VNC during the creation of the VM?
  • If I don't pick VNC, how do I access the VM?  Some external VNC Viewer?
  • I made sure that both my motherboard and my processor support VT-x but should I have used something like the E3-1246 v3 that has onboard graphics? (Intel HD Graphics P4600)
  • Would performance be better if I added a separate graphics card?  Is this what GPU passthrough is all about?
  • We use windows and rdp at work.  Usually it's impossible to tell if I'm using a remote session, performance is that good.  Is it reasonable to expect that level of performance from KVM?
  • What's the best technology for remotely accessing a Ubuntu VM? VNC, RDP, Teamviewer, Guacamole, something else?

 

I have no intention of gaming on the VM, just looking for a usable GUI environment.  BTW, I did get an Xbuntu instance up and running with better performance, but eventually I'd like to have a Windows VM, so I figured I better try to get this worked out.  Thanks for the help!

 

The VNC connection enabled for VMs is not using a high-performance remote graphics protocol.  It's good enough for basic administration of virtual machines, but not ideal for use as a "virtual desktop."  For Linux-based guests, I honestly don't know what the "best" method is for remote graphics, but I can tell you we are working on some optimizations that will improve remote graphics in general for our VMs.  For Windows guests though, RDP is your best bet IMHO.  Now to address some of your questions directly:

 

Should I have picked VNC during the creation of the VM?  If I don't pick VNC, how do I access the VM?  Some external VNC Viewer?

If you want to remotely control the VM using the web browser and noVNC, then you need to select VNC.  If you want to output the graphics from a video card on your system to your monitor directly, you can try to do that as well (this is not using any remote graphics).  If you choose the latter, you will need to also assign a USB mouse and keyboard to control it and you will not be able to use VNC.  However, you could then install some type of remote software inside the VM and access it that way if you wanted remote capabilities.

 

I made sure that both my motherboard and my processor support VT-x but should I have used something like the E3-1246 v3 that has onboard graphics? (Intel HD Graphics P4600)

Are you looking to output graphics from a VM on your system through a GPU attached to a monitor / TV?  If so, there may be a reason to get a system with onboard graphics.  If not, then it really doesn't matter.  Also, you need VT-d for passing through a PCI device but VT-x is required to create any type of VM at all.

 

Would performance be better if I added a separate graphics card?  Is this what GPU passthrough is all about?

Performance through VNC would not be better by adding a separate graphics card.  VNC doesn't use the horsepower of your GPU to render graphics for the VMs.  The VM is assigned a virtual GPU that is emulated through software (utilizing your CPU).  GPU pass through is all about combining the benefits of a NAS and a desktop or a NAS and a media player or a NAS and a SteamBox on the same physical system.  It's about getting the benefits of both a desktop and server on the same hardware.

 

We use windows and rdp at work.  Usually it's impossible to tell if I'm using a remote session, performance is that good.  Is it reasonable to expect that level of performance from KVM?

RDP can be very solid depending on the latency/bandwidth in between your device and the server running the RDP session.  If the servers are in the building with you, it should be near-flawless.  Over the internet, RDP can be pretty good, but it starts to show some flaws when bandwidth is constrained or latency is too high.  That said, RDP isn't performing well for you at work because of your choice of hypervisor really, it's performing well because it's RDP, and that's a really good remote graphics protocol.  You can use RDP with Windows VMs in KVM just the same and I would expect just the same quality experience for the most part.

 

What's the best technology for remotely accessing a Ubuntu VM? VNC, RDP, Teamviewer, Guacamole, something else?

Maybe someone else can chime in on that.  If it's an Ubuntu server, some would argue SSH is the best method (but that's not remote graphics).  For desktop-level access (GUI), I'm curious as to what others would say.

Link to comment

Wow Jon, thanks for the in depth reply. 

 

I plan on leaving this machine in the basement and headless.  What I think I read in your reply is that unless I plan on physically plugging a monitor into the unraid machine, it really won't matter if I add a GPU, right?  One thing I didn't make clear in my first post is that there is no graphics card in the machine at all, just the simple ASPEED on board adapter on the motherboard.

 

When you use RDP to a windows client, you select VNC when making the virtual machine, right?  You have to VNC into it long enough to enable remote access inside the host, then you're free to RDP. Correct?

 

I'm anxious to see what others might recommend for remote controlling a Ubuntu GUI too.  As I mentioned earlier, I have several Ubuntu sever clients, ssh works great for those.

 

Again, thanks for the detailed reply. :)

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.