winserverguy
Goto Top

Performanceprobleme mit FreeRDP unter Windows Server 2012R2

Hallo zusammen!


Ich setze einen HP ThinClients mit Thinpro (abgespecktes Ubuntu) auf dem aktuellen Softwarestand ein, um mich mit RDP(freerdp) auf einen Terminalserver mit Windows Server 2012R2 verbinden. Das klappt auch wunderbar und ist sehr performant.

Zu Testzwecken habe ich mir eine weitere Remote Desktop Umgebung aufgesetzt (Testumgebung), parallel dazu existiert noch die "Standardumgebung"

Nun zum eigentlichen Problem:
Nach der Verbindung per freerdp auf meine neue Testumgebung ist die Performance trotz ausreichender Dimensionierung serverseitig (3 vCPUs, 4 GB RAM) katastrophal (Programmaufrufe verzögern sich extrem, eingegebene Texte erscheinen erst nach einigen Sekunden auf dem Bildschirm, Startmenü baut sich streifenweise auf).
Wenn ich die gleiche Verbindung auf die Testumgebung, mit exakt dem gleichen User von einem Windowsclient (Win8.1) mit mstsc aufbaue, ist die Performance wieder on top.

=> identischer HP ThinClient in Testumgebung, extrem langsam; Verbindung in "Standardumgebung" flott wie eh und je.

Das bringt mich zur Schlussfolgerung, dass es nicht an der Einstellung des Clients - wie in einigen Beiträgen hier im Board behandelt - sondern muss eine lokale Einstellung unter Windows 2012R2 sein.

Nachdem ich sämtliche Einstellungen, Policys, etc. geprüft habe, bin ich am Ende meiner Ideen und hoffe ihr könnt mir helfen.

Zur Vollständigkeit: RemoteFX ist auf dem Hyper-V-Host und somit weder in der Produktivumgebung noch in der Testumgebung aktiv und kann meiner Meinung nach als Ursache ausgeschlossen werden.


Viele Grüße
WinServerGuy

Content-ID: 300477

Url: https://administrator.de/contentid/300477

Ausgedruckt am: 23.11.2024 um 12:11 Uhr

WinServerGuy
WinServerGuy 01.04.2016 um 09:56:04 Uhr
Goto Top
Ich habe mal die clientseitigen RDP-Logs der beiden Verbindungen geprüft. Dabei ist mir aufgefallen, dass in der Standardumgebung im Vorfeld geprüft wird, ob der Zielrechner erreichbar ist und zusätzliche Verbindungen zulässt (FETT), in der Testumgebung ist dieser Part gar nicht aufgelistet. Am Ende ist zu sehen, dass die Paketanzahl der verwendeten Codecs sich extrem unterscheiden: Standardumgebung > Testumgebung


Standardumgebung:

Connection starting
looking ACL for process /usr/bin/freerdp_wrapper.sh

RDP Keyboard: 0x00000407 German
Do 31 Mär 2016 11:55:44 CEST: Start von xfreerdp zu <IP-Adresse-RDS1>:3389
Thu Mar 31 11:55:44 2016: RDP session opened
freerdp package '1.1.1-hp8.40' branch 'tags/ThinPro-5.2.0/52011' build '19790:29250'
Logging levels:
(default): NOTICE
Server [<IP-Adresse-RDS1>] Port [3389]
Gateway Enabled [No] Hostname [(none)] Port [443]
GDI Mode [Hardware]
Bitmap Cache [On]
Offscreen Cache [On]
Load Balance Info [(none)]
RDP Debug Packet Spooling:
none
Do 31 Mär 2016 11:55:44 CEST: connected to <IP-Adresse-RDS1>:3389
Connecting with security layer NLA
RDP Server Build: 9600
Do 31 Mär 2016 11:55:45 CEST: Server status code 0x401: The destination computer is being located.
Do 31 Mär 2016 11:55:45 CEST: Server status code 0x402: The destination computer is being prepared for use.
Do 31 Mär 2016 11:55:45 CEST: Server status code 0x404: The client is being redirected to the destination computer.
Do 31 Mär 2016 11:55:45 CEST: Server status code 0x403: The destination computer is being prepared to accept a remote connection.

Peer supports codec 'CODEC_GUID_NSCODEC'
Peer supports codec 'CODEC_GUID_REMOTEFX'
Peer supports codec 'CODEC_GUID_IGNORE'
Peer supports codec 'CODEC_GUID_IMAGE_REMOTEFX'
The server supports the RDP8 Graphics Pipeline Extension (EGFX).
Initial desktop size: 1280x1024
The RDP Server requests a dynamic channel for Graphics Pipeline Extension [RDPEGFX], Id=6
This is an RDP8 server.
The RDP Server requests a dynamic channel for Video Control [RDPEVOR], Id=8
The RDP Server requests a dynamic channel for Video Optimized Remoting [RDPEVOR], Id=9
The RDP Server requests a dynamic channel for Geometry Tracking for Video [RDPEGT], Id=10
The RDP Server requests a dynamic channel for TCP Reliable Audio, Id=13
The RDP Server requests a dynamic channel for TCP Reliable Audio, Id=13
00000,000: xf_sentinel_connect
The RDP Server requests a dynamic channel for Geometry Tracking for Video [RDPEGT], Id=13
The RDP Server requests a dynamic channel for Plug and Play Devices [RDPEPNP], Id=14
The RDP Server requests a dynamic channel for Multitouch Input [RDPEI], Id=13
The RDP Server requests a dynamic channel for General USB Redirection [RDPEUSB], Id=14
The RDP Server requests a dynamic channel for Dynamic Display Reconfiguration [RDPEDISP], Id=13
Do 31 Mär 2016 11:56:13 CEST: Verbindungsüberwachung aktiv, Zeitlimit=6000,30000,2147483647ms.
The RDP Server requests a dynamic channel for Geometry Tracking for Video [RDPEGT], Id=15
RDP client exit code 12 (0xc): The disconnection was initiated by the user logging off his or her session on the server.
The RDP server requested a disconnect (DisconnectProviderUltimatum), reason code 0x80="Provider-initiated disconnect"
00059,277: Session Metrics:
> Warning: frames and pixel per second measurements are only valid
> if the content, server, and network is driving the thin client
> to the maximum. Otherwise, the limiter is elsewhere.
RemoteFX Frame Index: 0
EGFX Frame Id: 1.238
Codec Uncompressed: 0 blocks; 0 pixels (0%/0%)
Codec CAVideo: 0 blocks; 0 pixels (0%/0%)
Codec ClearCodec: 1.969 blocks; 8.245.724 pixels (61%/14%)
Codec Planar: 0 blocks; 0 pixels (0%/0%)
Codec H264: 0 blocks; 0 pixels (0%/0%)
Codec Alpha: 0 blocks; 0 pixels (0%/0%)
Codec Progressive-Simple: 0 blocks; 0 pixels (0%/0%)
Codec Progressive-First: 763 blocks; 3.125.248 pixels (23%/5%)
Codec Progressive-Upgrade: 494 blocks; 2.023.424 pixels (15%/3%)
Codec SolidFill: 47 blocks; 147.835 pixels (0%)
Codec SurfaceToSurface: 64 blocks; 19.052.352 pixels (33%)
Codec SurfaceToCache: 840 blocks; 3.440.640 pixels (6%)
Codec CacheToSurface: 5.055 blocks; 20.705.280 pixels (36%)

Fallthrough exit code 0xc=12
Do 31 Mär 2016 11:57:09 CEST: Closing RDP connection with exit code 12
Do 31 Mär 2016 11:57:09 CEST: xfreerdp exit: pid=6834, sig=0 (none), status=12
Connection stopped


Testumgebung

Connection starting
looking ACL for process /usr/bin/freerdp_wrapper.sh

RDP Keyboard: 0x00000407 German
Do 31 Mär 2016 11:58:07 CEST: Start von xfreerdp zu <IP-Adresse-RDS2>:3389
Thu Mar 31 11:58:07 2016: RDP session opened
freerdp package '1.1.1-hp8.40' branch 'tags/ThinPro-5.2.0/52011' build '19790:29250'
Logging levels:
(default): NOTICE
Server [<IP-Adresse-RDS2>] Port [3389]
Gateway Enabled [No] Hostname [(none)] Port [443]
GDI Mode [Hardware]
Bitmap Cache [On]
Offscreen Cache [On]
Load Balance Info [(none)]
RDP Debug Packet Spooling:
none
Do 31 Mär 2016 11:58:07 CEST: connected to <IP-Adresse-RDS2>:3389
Connecting with security layer NLA
RDP Server Build: 9600
Peer supports codec 'CODEC_GUID_NSCODEC'
Peer supports codec 'CODEC_GUID_REMOTEFX'
Peer supports codec 'CODEC_GUID_IGNORE'
Peer supports codec 'CODEC_GUID_IMAGE_REMOTEFX'
The server supports the RDP8 Graphics Pipeline Extension (EGFX).
Initial desktop size: 1280x1024
The RDP Server requests a dynamic channel for Graphics Pipeline Extension [RDPEGFX], Id=6
This is an RDP8 server.
The RDP Server requests a dynamic channel for Video Control [RDPEVOR], Id=8
The RDP Server requests a dynamic channel for Video Optimized Remoting [RDPEVOR], Id=9
The RDP Server requests a dynamic channel for Geometry Tracking for Video [RDPEGT], Id=10
The RDP Server requests a dynamic channel for TCP Reliable Audio, Id=13
The RDP Server requests a dynamic channel for TCP Reliable Audio, Id=13
00000,000: xf_sentinel_connect
The RDP Server requests a dynamic channel for Geometry Tracking for Video [RDPEGT], Id=13
The RDP Server requests a dynamic channel for TCP Reliable Audio, Id=14
The RDP Server requests a dynamic channel for Multitouch Input [RDPEI], Id=16
The RDP Server requests a dynamic channel for TCP Reliable Audio, Id=13
The RDP Server requests a dynamic channel for Geometry Tracking for Video [RDPEGT], Id=14
The RDP Server requests a dynamic channel for Dynamic Display Reconfiguration [RDPEDISP], Id=13
The RDP Server requests a dynamic channel for Plug and Play Devices [RDPEPNP], Id=14
The RDP Server requests a dynamic channel for General USB Redirection [RDPEUSB], Id=13
Do 31 Mär 2016 11:58:19 CEST: Verbindungsüberwachung aktiv, Zeitlimit=6000,30000,2147483647ms.
The RDP Server requests a dynamic channel for Geometry Tracking for Video [RDPEGT], Id=14
The RDP Server requests a dynamic channel for Geometry Tracking for Video [RDPEGT], Id=14
RDP client exit code 12 (0xc): The disconnection was initiated by the user logging off his or her session on the server.
The RDP server requested a disconnect (DisconnectProviderUltimatum), reason code 0x80="Provider-initiated disconnect"
00071,770: Session Metrics:
> Warning: frames and pixel per second measurements are only valid
> if the content, server, and network is driving the thin client
> to the maximum. Otherwise, the limiter is elsewhere.
RemoteFX Frame Index: 0
EGFX Frame Id: 411
Codec Uncompressed: 0 blocks; 0 pixels (0%/0%)
Codec CAVideo: 0 blocks; 0 pixels (0%/0%)
Codec ClearCodec: 685 blocks; 3.416.687 pixels (80%/18%)
Codec Planar: 0 blocks; 0 pixels (0%/0%)
Codec H264: 0 blocks; 0 pixels (0%/0%)
Codec Alpha: 0 blocks; 0 pixels (0%/0%)
Codec Progressive-Simple: 0 blocks; 0 pixels (0%/0%)
Codec Progressive-First: 159 blocks; 651.264 pixels (15%/3%)
Codec Progressive-Upgrade: 48 blocks; 196.608 pixels (4%/1%)
Codec SolidFill: 21 blocks; 70.048 pixels (0%)
Codec SurfaceToSurface: 14 blocks; 148.512 pixels (0%)
Codec SurfaceToCache: 409 blocks; 1.675.264 pixels (9%)
Codec CacheToSurface: 2.895 blocks; 11.857.920 pixels (65%)

Fallthrough exit code 0xc=12
Do 31 Mär 2016 11:59:28 CEST: Closing RDP connection with exit code 12
Do 31 Mär 2016 11:59:28 CEST: xfreerdp exit: pid=10519, sig=0 (none), status=12
Connection stopped


Ich hoffe dass die Logs etwas mehr Licht ins dunkel bringen können!


Viele Grüße
WinServerGuy
WinServerGuy
WinServerGuy 12.04.2016 um 11:36:24 Uhr
Goto Top
Bisher bin ich noch keinen Schritt weiter gekommen...
Ebenfalls habe ich einen freerdp-Client unter Windows ausprobiert, dieser hat auch massive Performanceprobleme.
Fällt vielleicht jemanden eine sinnige Idee ein, die ich noch ausprobieren kann?!