Virtualizovaný desktop bez grafické akcelerace

Virtualizovaný desktop bez grafické akcelerace
« kdy: 19. 04. 2021, 01:44:33 »
Ahoj,
chci zde rozebrat, vaše zkušenosti s možnostmi a úskalími virtualizace desktopových OS na serveru, kde takový server obvykle nemá dedikovanou grafickou kartu, najít případný bottleneck a možnosti zvýšení výkonu.

K dispozici je běžný postarší server HP G8 2x CPU E5-2680, SSD, 192GB, Link v serverovně 1Gbps, KVM/QEMU nad PROXMOX, bez dedikované GPU. Monitorovaný server v rámci svých kapacit vůbec nic nedělá, má 3-8% 40 Core CPU vytíženého.

case A)
představoval jsem si, že si virtualizuji staré Flexibee účetnictví nad Fedora 33 GNome a budu mít jednoduše dostupný virtuál odkudkoliv.

setup se povedl, funguje, účetnictví účtuje, běží vzdálená plocha přes SPICE. Ale nejsem spokojen... Přetažení okna trvá tak dlouho, že je viditelné prostým okem. A to je ten problém Fedora dostupná přes VNC se mi zdá pomalejší než Windows dostupné přes RDP.

Doposud byly všechny provozované virtuály pouze v konzoli, tedy obvykle server edice libovolné distribuce a na všechno se přistupovalo přes SSH. Teď jsem ale udělal tuhle grafickou instanci a grafický výkon je tragédie. Kurzor myši má delay, když přetahuji okno, vidím, jak to celé scrolluje po obrazovce a postupně se vykresluje. No něco, na co z dnešního desktopu už člověk není zvyklý.

A teď mi jde o to rozseknout, jak můžu pomoct tomu, aby jednotlivé workstationy, běhané jakožto virtuály na serveru, měly response úměrnou tomu, že kdybych je nainstaloval na ten server na BAREMETAL, tak by jim stačila mizerná VGA karta a alepsoň menu a přesouvání oken by fungovalo plynule.

case B)
Na stejném serveru jest provozován bare-metal HYPER-V, všechny virtuály, uvažujme Win2019 Srv, Win10 Pro atd, atp, se chovají velice rychle. Response přes RDP je okamžitá, kliknu, okno se vyrederuje, chytnu okno za kraj, táhnu jej, krásně to funguje. Server take nema žádnou GPU, jak to dělá?

!IMPORTANT!   Jak funguje interně RDP?
Posílá vyrenderované objekty nebo jenom data k renderování, která se zpracují na klientu, který obvykle má GPU akceleraci?

!IMPORTANT!   Jak funguje VNC
Nesnaží se to všechno spočítat u sebe a pak mi poslat jen bitmapu?  Tohle fakt nevím, prosím o vysvětlení, pokud k tomu máte doplnění.

+----------------------------------

V některé komponentě je tedy zakopaný pes, uvažuji takto:
1) Jak HYPER-V, tak KVM virtualizují na stejném HW a nemají dedikovanou GPU
2) Windows RDP stanice se chovají svižnějí než Windows VNC stanice. Tzn, pokud se vykašlu na přístup ke stroji přes VNC, ale rozhcodím si v guestu RDP, je to rychlejší. Otázka je proč?

case C)
přidání dedikované karty
když do serveru přidám dedikovanou dejme tomu, z hlediska Linux driver příznivou AMD kartu, jediná možnost je udělat PCIe PassThrough. Tím ale pomůžu jenom jednomu konkrétnímu stroji. Existuje možnost, aby si klienstké Windowsy, Fedorky, Ubuntu, prostě zadavaly svoje složitější výpočty k té dedikované GPU?

díky za vaše poznatky
Dan
« Poslední změna: 19. 04. 2021, 07:06:53 od Petr Krčmář »


Re:Virtualizovaný desktop bez grafické akcelerace
« Odpověď #1 kdy: 19. 04. 2021, 10:25:16 »
myslim, že ti na tom linuxu chybí nějakej ovladač grafického interface ... ale nevim jakej
windows 10 mají každopádně svuj univerzální, neni rychlej tak jako originály od AMD a NVidie
ale funguje dobře.

Medo77

  • ****
  • 288
    • Zobrazit profil
    • E-mail
Re:Virtualizovaný desktop bez grafické akcelerace
« Odpověď #2 kdy: 19. 04. 2021, 11:00:36 »
Velmi zjednodusene povedane, ano: VNC funguje ako bitmapa, RDP skor vektorovo - posiela rozdiel objektov oproti poslednemu stavu. (ale ruku do ohna za to nedam, uz je to par rokov , co som sa tomu venoval).
Teamviewer sa snazi slapat RDP na pety, ale .. Citrix nasadil latku vysoko (RDP je nieco zalicencovane/kupene ? od Citrixu)....

Ak to potrebujes len nejak "polepit" (t.j. instancia pre viac userov), tak Win10+RDPwrap.

janob

Re:Virtualizovaný desktop bez grafické akcelerace
« Odpověď #3 kdy: 19. 04. 2021, 11:15:56 »
Problém bude asi v tom VNC.

Ja som namiesto toho používal x2go. Pri 5 simultánnych grafických klientoch som nepozoroval žiadne takéto problémy s pomalým vykresľovaním. Ale je pravda, že tí klienti boli všetci linuxoví, nikto na Windows.

RDa

  • *****
  • 2 467
    • Zobrazit profil
    • E-mail
Re:Virtualizovaný desktop bez grafické akcelerace
« Odpověď #4 kdy: 19. 04. 2021, 11:20:03 »
Ja pouzivam WinXP+Office2003 v Qemu+Spice, server je E3-1220 V6, takze relativne novy cpu, ktery si rad poskoci na 3.5G z 3.0G. V guest os jsou nainstalovany drivery pro spice (Red Hat QXL GPU).

Pro pripojeni mam FreeRDP nebo rdp klienta z win7, na tech xp mam tusim potuneny registry pro RDP server, aby sel v 24 bit a pak je tam MacType - renderer fontu s antialiasingem (jeste z dob, kdy instalace bezela na notebooku, dlouho s RDP a pak se to presunulo do VM). Bezne upravuji i grafiku a nepozoruji zadne problemy na to, co od toho vlastne ocekavam.

Ad pretahovani okna s obsahem: prijde mi to cca jako 10fps, bez rozdilu ve velikosti okna nebo dokreslovaneho pozadi, mozna ten refresh limituje RDP schvalne.

Co bych videl jako tvuj problem: "link v serverovne" ... to provozujes v housingu a tece to pres VPN pripadne pres bezne pripojeni do domacnosti? To imho nebude poradne fungovat nikdy - latence a prenosove pasmo neni na "lan like experience". Pro nouzove spravovani jako skrze teamviewer budiz.. ale nechtel bych na tom pracovat fulltime.


k3dAR

  • *****
  • 2 838
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Virtualizovaný desktop bez grafické akcelerace
« Odpověď #5 kdy: 19. 04. 2021, 11:30:19 »
kdyz lezu na server na druhem konci republiky, s mojim pripojenim 20-30Mbps, server s v podstate Atomem (serverovej=Avoton 2550), tak mi to prijde rychlosti v pohode, na serveru NEni dedikovana grafika, zkus co me napada:

1. na serveru pouzivam x11vnc s parametrama:
Kód: [Vybrat]
x11vnc -display :0 -localhost -usepw -no6 -rfbportv6 -1 -ping 60 -noxdamage -ncache_cr -forever -shared -dontdisconnect -noxrecord
2. k obrazu virtualu pristupuju pres virt-manager pustenej na totoznem serveru

3. na serveru pouzivam desktop Xfce a xserver-xorg-video-dummy ovladac

4. na klientovi Remminu...

k3dAR

  • *****
  • 2 838
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Virtualizovaný desktop bez grafické akcelerace
« Odpověď #6 kdy: 19. 04. 2021, 11:36:11 »
5. vnc spojeni je pres ssh tunel...

ja.

  • ****
  • 316
    • Zobrazit profil
    • E-mail
Re:Virtualizovaný desktop bez grafické akcelerace
« Odpověď #7 kdy: 19. 04. 2021, 11:40:12 »
Na bežnú desktopovú prácu vo VM nie je treba fyzická grafická karta; pokiaľ by ste potrebovali aplikáciu, ktorá vyžaduje GPU, tak OK, ale bežný desktop a bežné aplikácie to nepotrebujú. V prípade Proxmox clusteru by to bolo aj trocha kontraproduktívne, stratili by ste možnosť migrovať virtuálku medzi jednotlivými nodami.

Čo ale vplyv má, je použitý protokol na prístup k vzdialenému deskopu. SPICE neuvažuje s latenciou, je fajn pri lokálnom prístupe ku konzole, aby virt-manager niečo zobrazil, ale na prácu iba v prípade localhostu, nie cez sieť, už cez LAN je to dosť bolestivé. VNC pre každý frame porovnáva dve bitmapy celého desktopu (predošlý a aktuálny), urobí deltu a pošle ju klientovi. RDP bolo navrhnuté ako transport pre GDI príkazy, podobne ako kedysi X11 cez TCP, akurát bol od začiatku async, preto Windows cez RDP je oveľa svižnejší ako VNC a aj ako X11. RDP má mechanizmus negociovanie kvality spojenia, resp. zahadzovanie detailov podľa stavu linky (t.j. neprenášať wallpaper, vypnúť animácie, vypnúť prekresľovanie okna pri presune/zmene veľkosti, apod), je použiteľné aj cez DSL.

Čo sa týka linuxových virtuálok, tak aktuálne distribúcie s Gnome majú tuším podporu VNC, ale mne to vždy pripadalo pomalé. Skúsil by som xrdp alebo x2go; stratíte podporu Waylandu, ale aspoň to bude ako-tak použiteľné.

Re:Virtualizovaný desktop bez grafické akcelerace
« Odpověď #8 kdy: 19. 04. 2021, 21:50:45 »
Díky všem za názory. Možná bych jen upřesnil, že Windows a HYPER-V jsem použil jenom pro ilustraci toho, že bez akcelerace na stejném serveru jedou v pohodě Remote desktopy s Win a tudíž to musí být něčím jiným než dedikovanou grafikou.. Tedy rada instalace Windows s patchnutým RDP serverem neřeší moji potřebu. Tou bylo od počátku připojit se na Linuxové grafické prostředí.

Dávám zpětnou vazbu s výsledkem:

Nainstaloval jsem na tu virtualizovanou Fedoru xrdp a dostavám se na podstatně svižnější prostředí. Nemyslel jsem si, že někdy budu nucen použít Microsoftí protokol na přístup k Linuxu, ale  jsem rád, že to bylo alespoň takto řešitelné.. Na filmy to pochopitelně není, ale na vystavení faktury už je to víc než ok, okna se nelagují.

Jinak v diskuzi padl dotaz o linkách. Ano jede to přes Internet, server je v datacentru, linka odkud se připojuji je optika, co dá alespoň 500Mbps. Celé to prochází přes WireGuard.

Ten technický rozdíl mezi VNC a RDP je popsán pěkně zde https://www.routerhosting.com/rdp-vs-vnc-remote-desktop-comparison/

k3dAR

  • *****
  • 2 838
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Virtualizovaný desktop bez grafické akcelerace
« Odpověď #9 kdy: 20. 04. 2021, 01:08:38 »
[...] Nainstaloval jsem na tu virtualizovanou Fedoru xrdp a dostavám se na podstatně svižnější prostředí. [...] Na filmy to pochopitelně není, ale na vystavení faktury už je to víc než ok, okna se nelagují.
[...] optika, co dá alespoň 500Mbps. Celé to prochází přes WireGuard. [...]
zpusobem ktery sem popisoval vejs, sem ted zkusil:

nb->wifi(rychlost hlasi 130MBps)->router->glan->desktop(i3 7gen)->virt-manager->virtual(2 vCPU, 2GB RAM)->cistej_os_s_firefoxem(+h264ify,uBlockOrigin,PrivacyBadger)

=> video prehrava "okem" v pohode, jiste to neni to same jako lokalne, v tychlejch scenach videklipu je znat ze to ma mene fps, ale obraz se netrha, zvuk prenasen z desktopu (kam ma vychozi vystup ten virtual) pres pulseaudio do NB...

tzn. a 500Mbps optikou a Non-video to proste musi byt jak lokalne ;-)

--

Re:Virtualizovaný desktop bez grafické akcelerace
« Odpověď #10 kdy: 20. 04. 2021, 10:26:14 »
Zkuste https://www.nomachine.com/
Trochu náročnější na výkon, ale odezva výborná.

Re:Virtualizovaný desktop bez grafické akcelerace
« Odpověď #11 kdy: 20. 04. 2021, 19:19:48 »
[...] Nainstaloval jsem na tu virtualizovanou Fedoru xrdp a dostavám se na podstatně svižnější prostředí. [...] Na filmy to pochopitelně není, ale na vystavení faktury už je to víc než ok, okna se nelagují.
[...] optika, co dá alespoň 500Mbps. Celé to prochází přes WireGuard. [...]
zpusobem ktery sem popisoval vejs, sem ted zkusil:

nb->wifi(rychlost hlasi 130MBps)->router->glan->desktop(i3 7gen)->virt-manager->virtual(2 vCPU, 2GB RAM)->cistej_os_s_firefoxem(+h264ify,uBlockOrigin,PrivacyBadger)

=> video prehrava "okem" v pohode, jiste to neni to same jako lokalne, v tychlejch scenach videklipu je znat ze to ma mene fps, ale obraz se netrha, zvuk prenasen z desktopu (kam ma vychozi vystup ten virtual) pres pulseaudio do NB...

tzn. a 500Mbps optikou a Non-video to proste musi byt jak lokalne ;-)

Už jen ze zajímavosti vyzkouším také tento postup a ještě i ten NX protokol.
Díky

k3dAR

  • *****
  • 2 838
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Virtualizovaný desktop bez grafické akcelerace
« Odpověď #12 kdy: 20. 04. 2021, 20:06:00 »
Už jen ze zajímavosti vyzkouším také tento postup a ještě i ten NX protokol.
ad bod 3. - krome instalace toho balicku je potreba pripravit /etc/X11/xorg.conf napr.:
Kód: [Vybrat]
Section "Monitor"
    Identifier "Monitor0"
    HorizSync 28.0-80.0
    VertRefresh 48.0-75.0
    Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync     # 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
    Modeline "1920x1200_60.00" 193.25 1920 2056 2256 2592 1200 1203 1209 1245 -hsync +vsync     # 1920x1200 59.88 Hz (CVT 2.30MA) hsync: 74.56 kHz; pclk: 193.25 MHz
EndSection

Section "Device"
    Identifier "Card0"
    Driver "dummy"
    VideoRam 256000
EndSection

Section "Screen"
    Identifier "Screen0"
    DefaultDepth 24
    Device "Card0"
    Monitor "Monitor0"
    SubSection "Display"
        Depth 24
        Modes "1920x1200" "1920x1080"
    EndSubSection
EndSection
[ tedy bod 3. muzes ve zkousce vynechat, ja ho mam primarne protoze na cilovek serveru neni pripojen monitor :)]