Skip to content

Extremely laggy to access Windows guests via NoVNC console #4660

Description

@luhaijiao
ISSUE TYPE

Improvement Request

COMPONENT NAME

NoVNC Console

CLOUDSTACK VERSION

4.15

CONFIGURATION

All

OS / ENVIRONMENT

Ubuntu 20.04

SUMMARY

With Ubuntu 20.04(KVM)+ACS 4.15, we noticed

  • Access to Windows guests via NoVNC console is extremely laggy, barely to use, even compared to the original VNC console in ACS 4.14 or previous versions.
  • Access to Linux guests via NOVNC consoles however, looks pretty smooth, no any issue
STEPS TO REPRODUCE
1. Creat Windows VMs
2. Click Windows VM's console to access
3. Move mouse curisor and click any icons or menus
EXPECTED RESULTS

Quick mouse movement and response

ACTUAL RESULTS

Very laggy , significant delay. Poor user expericen.

Activity

  1. added this to the 4.15.1.0 milestone on Feb 7, 2021
  2. DaanHoogland commented on Feb 7, 2021

    @DaanHoogland
    Contributor

    @davidjumani @weizhouapache is this a known issue?

  3. davidjumani commented on Mar 6, 2021

    @davidjumani
    Contributor

    Haven't faced it, @vladimirpetrov have you encountered this ?

  4. vladimirpetrov commented on Mar 6, 2021

    @vladimirpetrov
    Contributor

    I haven't noticed such problem but will test and report back.

  5. vladimirpetrov commented on Mar 6, 2021

    @vladimirpetrov
    Contributor

    @luhaijiao what browser version are you using? Have you tried with different browsers and OS-es?

  6. vladimirpetrov commented on Mar 8, 2021

    @vladimirpetrov
    Contributor

    I deployed Windows 10 VM using 2 cores, 2 GHz and 4 GB virtual resources. Tested with latest Chrome and Firefox on Ubuntu 20.04 and Windows 10 Pro - it's pretty usable, there is a small lag of course - something like a regular VNC connection but nothing severe.

  7. div8cn commented on Mar 9, 2021

    @div8cn
    Contributor

    Test environment

    Windows 10
    Google Chrome: 88.0.4324.190


    CloudStack environment
    CloudStack 4.15.0.0

    compute node:
    Ubuntu 20.04.01 (kernel Linux nodec 5.4.0-66-generic #74-Ubuntu SMP Wed Jan)

    libvirt guest vm xml

    <domain type='kvm' id='66'> <name>i-2-46-VM</name> <uuid>96c7ec70-f07b-436c-b774-732e2dfb0fa8</uuid> <description>Windows PV</description> <memory unit='KiB'>4194304</memory> <currentMemory unit='KiB'>4194304</currentMemory> <vcpu placement='static'>4</vcpu> <cputune> <shares>1000</shares> </cputune> <resource> <partition>/machine</partition> </resource> <sysinfo type='smbios'> <system> <entry name='manufacturer'>Apache Software Foundation</entry> <entry name='product'>CloudStack KVM Hypervisor</entry> <entry name='uuid'>96c7ec70-f07b-436c-b774-732e2dfb0fa8</entry> </system> </sysinfo> <os> <type arch='x86_64' machine='pc-i440fx-4.2'>hvm</type> <boot dev='cdrom'/> <boot dev='hd'/> <smbios mode='sysinfo'/> </os> <features> <acpi/> <apic/> <pae/> <hyperv> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8096'/> </hyperv> </features> <cpu mode='host-passthrough' check='none'> <topology sockets='1' cores='4' threads='1'/> <feature policy='require' name='vmx'/> </cpu> <clock offset='localtime'> <timer name='hypervclock' present='yes'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/bin/qemu-system-x86_64</emulator> <disk type='network' device='disk'> <driver name='qemu' type='raw' cache='none'/> <auth username='hyperstor'> <secret type='ceph' uuid='44069041-572d-32b0-abc4-745b97eae508'/> </auth> <source protocol='rbd' name='rbd/21f5ffcd-9a00-4442-afa8-12169086eaaf' index='2'> <host name='10.100.250.11' port='3300'/> <host name='10.100.250.12' port='3300'/> <host name='10.100.250.13' port='3300'/> </source> <target dev='vda' bus='virtio'/> <serial>21f5ffcd9a004442afa8</serial> <alias name='virtio-disk0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu'/> <target dev='hdc' bus='ide'/> <readonly/> <alias name='ide0-1-0'/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk> <controller type='ide' index='0'> <alias name='ide'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <controller type='virtio-serial' index='0'> <alias name='virtio-serial0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </controller> <controller type='usb' index='0' model='piix3-uhci'> <alias name='usb'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/> </controller> <controller type='pci' index='0' model='pci-root'> <alias name='pci.0'/> </controller> <interface type='bridge'> <mac address='02:00:7b:1b:00:04'/> <source bridge='brbond1-817'/> <bandwidth> <inbound average='256000' peak='256000'/> <outbound average='256000' peak='256000'/> </bandwidth> <target dev='vnet67'/> <model type='virtio'/> <link state='up'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <interface type='bridge'> <mac address='1e:00:7d:00:00:ed'/> <source bridge='brbond1-1'/> <bandwidth> <inbound average='256000' peak='256000'/> <outbound average='256000' peak='256000'/> </bandwidth> <target dev='vnet68'/> <model type='virtio'/> <link state='up'/> <alias name='net1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </interface> <serial type='pty'> <source path='/dev/pts/37'/> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> <alias name='serial0'/> </serial> <console type='pty' tty='/dev/pts/37'> <source path='/dev/pts/37'/> <target type='serial' port='0'/> <alias name='serial0'/> </console> <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/i-2-46-VM.org.qemu.guest_agent.0'/> <target type='virtio' name='org.qemu.guest_agent.0' state='connected'/> <alias name='channel0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <alias name='input0'/> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'> <alias name='input1'/> </input> <input type='keyboard' bus='ps2'> <alias name='input2'/> </input> <graphics type='vnc' port='5934' autoport='yes' listen='10.226.18.130'> <listen type='address' address='10.226.18.130'/> </graphics> <video> <model type='cirrus' vram='16384' heads='1' primary='yes'/> <alias name='video0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> <watchdog model='i6300esb' action='none'> <alias name='watchdog0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </watchdog> <memballoon model='none'/> </devices> <seclabel type='dynamic' model='dac' relabel='yes'> <label>+0:+0</label> <imagelabel>+0:+0</imagelabel> </seclabel> </domain>

    Guest OS :
    Windows Server 2016 Standard
    virtio driver: virtio-win-0.1.164.iso( 10.0.14393.1613)
    The following drives have been installed
    viostor
    vioserial
    NetKVM
    Balloon
    guest-agent

  8. div8cn commented on Mar 9, 2021

    @div8cn
    Contributor

    I compared cloudstack console, novnc and VNC view

    There is no difference between VNC view and novnc
    However, the delay of cloudstack console is very serious

    It is shown in the following aspects
    When moving the mouse, I feel that the mouse is very heavy and difficult to move

  9. yadvr commented on Mar 9, 2021

    @yadvr
    Member

    @div8cn when you say cloudstack console, you mean the old/legacy console or the new novnc console. The CPVM essentially proxies the console between the hypervisor and browser, which may be cause of that latency. Is the user/browser away from the CPVM/infrastructure.

  10. div8cn commented on Mar 9, 2021

    @div8cn
    Contributor
    1. Console refers to cloudstack new console (novnc)
    2. The test computer and cloudstack SSVM belong to the same layer-3 routing and different VLANs
  11. yadvr commented on Mar 9, 2021

    @yadvr
    Member

    @div8cn thanks, how far is the user/browser from the CPVM (for example is CPVM say is in London and user in Australia)? And, does it happen only for Windows, what about any Linux distro with a desktop say Ubuntu Desktop?

  12. div8cn commented on Mar 9, 2021

    @div8cn
    Contributor

    The test computer and cloudstack CPVM belong to the same layer-3 routing and different VLANs, Local to CPVM network delay < 5ms

    I deployed a Ubuntu 20.04 guest OS
    The test effect is also very bad
    It's like VMware VM doesn't have a console experience with vmtools installed

  13. yadvr commented on Mar 11, 2021

    @yadvr
    Member

    @div8cn sorry I didn't understand your statement, are you seeing laggy novnc console with Ubuntu 20.04 Desktop as well? And are you saying this is caused by VMs with openvmtools/vmware-tools installed?

  14. 4 remaining items

  15. luhaijiao commented on Mar 11, 2021

    @luhaijiao
    Author

    Anyone tested the novnc console of Windows Server VM ? just would like to isolate if it's a pure environment issue of our own.

  16. weizhouapache commented on Mar 11, 2021

    @weizhouapache
    Member

    Anyone tested the novnc console of Windows Server VM ? just would like to isolate if it's a pure environment issue of our own.

    @luhaijiao could you record the screenshots of cloudstack novnc console and cloudstack vnc console (novnc.console.default=false) of same vm ?

  17. yadvr commented on Mar 30, 2021

    @yadvr
    Member

    Ping @luhaijiao any update? Is this still an issue we should be tracking for 4.15.1 or is it an environment issue?

  18. luhaijiao commented on Mar 31, 2021

    @luhaijiao
    Author

    Ok, we will try to record and compare the performance between 'traditional ' vnc and newly implemented novnc console.

  19. yadvr commented on Apr 1, 2021

    @yadvr
    Member

    Thanks @luhaijiao pl keep us updated.

  20. self-assigned this
    on Apr 6, 2021
  21. removed this from the 4.15.1.0 milestone on Apr 26, 2021
  22. yadvr commented on Apr 26, 2021

    @yadvr
    Member

    @luhaijiao We've not heard from you since last few weeks, let us know if you've the issue and how can we produce it. Until then I've kept it outside of any milestone. Thanks.

  23. yadvr commented on Jul 15, 2021

    @yadvr
    Member

    Closing this as we've not heard any update, @luhaijiao kindly test against 4.15.1.0 and re-open if you've any advice for us to reproduce and help address this. Thanks.

  24. rpshyd commented on Jul 11, 2024

    @rpshyd

    Windows 10 is laggy with Cloudstack 4.18.2.1(linux pretty smooth), Am I missing something. Is anyone else have the same issue

  25. weizhouapache commented on Jul 12, 2024

    @weizhouapache
    Member

    Windows 10 is laggy with Cloudstack 4.18.2.1(linux pretty smooth), Am I missing something. Is anyone else have the same issue

    Windows requires more cpu and memory than linux.
    also some drivers are missing in Windows, for example virtio.
    try

    • install windows-virtio drivers (for disk and network, etc)
    • stop the vm, change OS type of vm to 'Windows PV', then start it.
  26. rpshyd commented on Jul 13, 2024

    @rpshyd

    Hi @weizhouapache , Thanks for the suggestion, I have already installed windows-virtio driver, still mouse laggs ,
    -----My Observation-----
    The video driver model cirrus & virtio makes the windows mouse laggy, if I change the agent.properties file settings variable vm.video.hardware to "qxl" windows works fine and that makes linux mouse laggy(KVM hypervisor).

  27. added this to the unplanned milestone on Sep 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions