Bug 22654 - univention-application-server für UCC 1.0
univention-application-server für UCC 1.0
Status: CLOSED FIXED
Product: Z_Univention Corporate Client (UCC)
Classification: Unclassified
Component: Terminal services
unspecified
Other Linux
: P5 normal
: UCC 1.0
Assigned To: Felix Botner
Moritz Muehlenhoff
: interim-3
: 20595 23383 (view as bug list)
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2011-06-01 16:40 CEST by Moritz Muehlenhoff
Modified: 2013-03-26 09:14 CET (History)
3 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments
bmon log von UCS TCS mit UCD (deleted)
2013-01-30 16:44 CET, Tobias Scherer
Details
bmon log von UCC (deleted)
2013-01-30 16:45 CET, Tobias Scherer
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Moritz Muehlenhoff univentionstaff 2011-06-01 16:40:17 CEST
Das Paket univention-application-server macht in UCS 2.4 folgendes:

- Das Join-Skript ändert die default-settings-Richtlinie auf das gerade installierte System
- Es werden einige Deps auf für den Terminalserver-Betrieb nötige Pakete deklariert (z.B. rsh-server)
- Über eine Dependency werden eine Reihe von Desktop-Paketen nachinstalliert (z-.B. OpenOffice und KDE)

Folgende Änderungen sollten für UCD 3.2 vorgenommen werden:

- Die Default-Richtlinie sollte nicht mit der Installation eines Pakets jedes Mal geändert werden (sondern nur wenn noch keine gesetzt ist)

- Systeme mit UCD-Terminalservices sollten über einen Service im UDM registriert werden

- Das Paket sollte umbenannt werden, z.B. univention-ucd-terminal-services

- Es sollte nur Deps auf die Pakete geben, die nötig sind um einen Thin-Client-Login zu erlauben. Die weitere Software kann besser flexibel vom Administrator über univention-install konfiguriert werden

- ANpassungen auf UCS 3.0 Standards (https://hutten.knut.univention.de/mediawiki/index.php/UCS-3.0-Aktualisierung-Univention-Pakete)
Comment 1 Moritz Muehlenhoff univentionstaff 2012-08-28 09:24:14 CEST
Linux-Terminalservices werden in UCC ebenfalls durch eine UCC-Installation bereitgestellt.
Comment 2 Moritz Muehlenhoff univentionstaff 2012-08-28 09:25:00 CEST
*** Bug 23383 has been marked as a duplicate of this bug. ***
Comment 3 Moritz Muehlenhoff univentionstaff 2012-08-28 14:05:11 CEST
Die Dependency auf univention-session sollte korrigiert werden, siehe Bug 20595
Comment 4 Moritz Muehlenhoff univentionstaff 2012-08-28 14:05:19 CEST
*** Bug 20595 has been marked as a duplicate of this bug. ***
Comment 5 Moritz Muehlenhoff univentionstaff 2012-09-13 16:30:31 CEST
Es ist zu prüfen, inwiefern das separate Paket noch nötig ist, generell sollte jedes Desktop-Image einen Terminalserverbetrieb ermöglichen.
Comment 6 Felix Botner univentionstaff 2012-11-12 10:23:54 CET
Es gibt nun das Paket univention-ucc-application-server mit Abhängigkeit auf univention-session-server. 

Darin ist ein Join Skript, dass der neuen UCC default Richtlinie den Hostnamen des Rechners als UCC Terminal Server und dem Rechner selbst den Servive UCCTS zuweist. Das ganze geschieht nicht über den UDM, sondern über das neue python-ldap Script /usr/share/univention-join/univention-mod-ldap-object.py (univention-join). Dieses Skript kann ein Werte zu Attributen bestehender Objekte hinzufügen und kann auf UCC Clients in Join Scripten verwendet werden.

# add ucc terminal service to host
/usr/share/univention-join/univention-mod-ldap-object.py "$@" \
        --dn "$ldap_hostdn" \
        --attribute "univentionService" \
        --value "UCCTS" || die

-> /usr/share/univention-join/univention-mod-ldap-object.py -h
Usage: usage:
  univention-mod-ldap-object.py [options]

description:
  Adds value to ldap attribute of a ldap object.

Options:
  -h, --help            show this help message and exit
  -D BINDDN, --binddn=BINDDN
                        bind dn
  -w BINDPW, --bindpwd=BINDPW
                        bind password
  -d DN, --dn=DN        dn to modify
  -a ATTR, --attribute=ATTR
                        attribute to modify
  -v VALUE, --value=VALUE
                        value to add to attribute

Außerdem gibt es im Paket das kleine Script univention-showload, dass den "Ersatz" für das CGI univention-showload darstellt und von Session Skripten ausgerufen werden kann, um den Server mit geringster LOAD zu finden.

Weitere Änderungen:
 * univentionService wurde zur Objectclass univentionCorporateClient hinzugefügt
 * UDM Module computers/ucc wurde um Service erweitert
 * policies/ucc_user wurde um uccTerminalserver Terminal-Server erweitert
Comment 7 Moritz Muehlenhoff univentionstaff 2013-01-03 09:42:05 CET
QA schieben, sinnvoll testen kann man das erst wenn Bug 29105 umgesetzt ist.
Comment 8 Erik Damrose univentionstaff 2013-01-22 16:40:54 CET
univention-ucc-application-server installiert univention-session-server -> OK
joinskript setzt univentionService auf UCCTS und erweitert die Benutzersitzung-Richtlinie um den neuen Terminalserver -> OK
univention-showload verifiziert in bug 29111 -> OK

-> Verified
Comment 9 Moritz Muehlenhoff univentionstaff 2013-01-30 16:35:35 CET
Bei den prototypisch ausgerollten Systemen im Vertrieb ist die Performance ist aktuell nicht ausreichend. Die Ursache ist noch unklar.

http://blog.mecheye.net/2012/06/the-linux-graphics-stack/ bietet eine gute Erklärung der Darstellungschichten eines aktuellen X-Desktop-Stacks
Comment 10 Tobias Scherer univentionstaff 2013-01-30 16:44:32 CET
Created attachment 5021 [details]
bmon log von UCS TCS mit UCD
Comment 11 Tobias Scherer univentionstaff 2013-01-30 16:45:03 CET
Created attachment 5022 [details]
bmon log von UCC
Comment 12 Moritz Muehlenhoff univentionstaff 2013-01-30 17:15:19 CET
Da es deutliche Performance-Unterschiede zwischen dem HP 5745 und dem 5735 gibt, würde ich darauf tippen, dass aktuell für das Compositing OpenGL statt Xrender verwendet wird.

http://userbase.kde.org/Desktop_Effects_Performance
Comment 13 Felix Botner univentionstaff 2013-02-01 16:39:40 CET
Die Einstellung "export QT_GRAPHICSSYSTEM='native'" beschleunigt die Session erheblich, das wird nun in univention-ucc-application-server/share/KDE gesetzt. Außerdem gibt es ein spezielles KDE Profil für die Remote Session. Darin wird beispielsweise das plasma theme auf air-netbook gesetzt und diverses eyeCandy abgestellt. Ob das verwendet wird, kann über ucc/session/remote/profile=true|false (default true) konfiguriert werden.

Mit diesen Einstellungen geht auch SSH X Forwarding auf alten Clients wieder akzeptabel (hpt5735-11). Dafür muss aber der  Verschlüsselungs-Algo. auf dem Client entsprechend konfiguriert werden (auf dem Client über ucc/session/remote/ssh/cipher). Default ist arcfour128 der am schnellsten (wahrscheinlich aber auch am unsichersten) ist. Außerdem wird standardmäßig die SSH Komprimierung verwendet (ucc/session/remote/ssh/compression). Mit diesen Einstellungen wird deutlich weniger übers Netz übertragen. Jedoch ist das Abspielen von (youtube) Video's nicht mehr ruckelfrei möglich. 

Daher ist X11 Forwarding, nicht SSH X Forwarding, noch der Standard (kann auf den Clients über lightdm/xserver/allowtcp konfiguriert werden, default ist true, dann wird X11 Forwarding gemacht, bei false dann SSH X Forwarding)
Comment 14 Moritz Muehlenhoff univentionstaff 2013-02-05 16:32:55 CET
In der Grundeinstellung ist jetzt ein verschlanktes Profil in Verwendung, bei dem
Arbeitsflächeneffekte deaktiviert sind und die Animationsgeschwindigkeit auf "Sofort" gestellt ist. QT_GRAPHICSSYSTEM='native' ist per Default gesetzt.

Ich komme damit für typische Arbeitsschritte auf einem HP 5735 an einem 1920x1080 FullHD-Display weitgehend auf Werte, die mit unseren TCS-Messungen vergleichbar waren.

- Ruft man im Firefox spiegel.de auf und scrollt dann langsam herunter kommt es zu Peaks um 6-8 MB/s für das initiale Anzeigen der Seite und sinkt dann auf 1-2 MB wenn nur die Flash-Werbung angezeigt wird.
- Ein Youtube-Video nimmt ca. 25 MB/s in Anspruch
- Arbeiten auf einer Shell nimmt weniger als 100 KB/s in Anspruch
- Das Betrachten des UCS-Handbuchs mit Okular schwankt zwischen 10 MB und 200 Kb je nachdem ob textlastige ode grafikintensive Seiten betrachtet werden
- Das Starten von Libreoffice Writer erzeugt einen einsekündigen Peak von 10 MB und sinkt dann beim Schreiben eines Texts auf ca. 1 MB/s.

Es gibt einige Sonderfälle wie der Hover-Effekt in den Systemeinstellungen, der eine starke Spitze erzeugt, aber das nur ein Randfall.

Das Setzen von ucc/session/remote/profile=false auf dem UCC-Terminalserver führte dazu, dass für einen neu angelegten benutzer ein Profil mit mehr Effekten verwendet wird (z.B. Animationsgeschwindigkeit auf Normal)

Mit den folgenden Einstellungen habe dann auf einem HP5745 (Dualcore Intel(R) Atom(TM) CPU N280   @ 1.66GHz) ich den SSH-Zugriff getestet:

ucc/session/remote/ssh/cipher=arcfour,blowfish-cbc
lightdm/xserver/allowtcp=false
ucc/session/remote/ssh/compression=true

Außerdem muss auf dem UCC-Terminalserver dann ucr set
sshd/xforwarding=yes gesetzt werden und LightDM neu gestartet werden.

Damit sinkt die Datenmenge je nach Anwendungsgebiet deutlich:

- Ruft man im Firefox spiegel.de auf und scrollt dann langsam herunter kommt es zu Peaks um 4 8 MB/s für das initiale Anzeigen der Seite und sinkt dann auf 0,5-1 MB wenn nur die Flash-Werbung angezeigt wird.
- Arbeiten auf einer Shell nimmt weniger als 20 KB/s in Anspruch
- Das Betrachten des UCS-Handbuchs mit Okular schwankt zwischen 1 MB und 100 Kb je nachdem ob textlastige oder grafikintensive Seiten betrachtet werden
- Das Starten von Libreoffice Writer erzeugt einen einsekündigen Peak von 1 MB und sinkt dann beim Schreiben eines Texts auf ca. 50 kb/s.
- Ein Youtube-Video nimmt ca. 8 MB/s in Anspruch, überfordert dabei aber den Client. Die Wiedergabe eines schnellen Videos wie eines Musikvideos hat dann ein paar Hakler/Frame Drops (der eine Core des Clients ist bei ca. 85%), kann aber prinzipiell noch angesehen werden (der Ton ist z.B. weiterhin synchron). Ein ruhiges Video wie der Univention-Screencast zu Samba4 wird problemlos dargestellt.

Ich werde das im Handbuch entsprechend dokumentieren, das auf leistungsfähiger Hardware SSH-Zugriff empfohlen wird.
Comment 15 Felix Botner univentionstaff 2013-02-06 13:47:08 CET
Der Default für die UCC-Remote sollte SSH XForwarding sein.
Comment 16 Felix Botner univentionstaff 2013-02-06 13:49:18 CET
univention-lightdm (lightdm/xserver/allowtcp?false) und univention-ucc-application-server (sshd/xforwarding=yes bei einer Neuinstallation) wurden entsprechend angepasst.
Comment 17 Moritz Muehlenhoff univentionstaff 2013-02-11 11:45:49 CET
I've tested with a current desktop image for the application server and a current thin client and SSH-based X forwarding is now the default.
Comment 18 Moritz Muehlenhoff univentionstaff 2013-03-26 09:14:39 CET
UCC 1.0 has been released: 
http://forum.univention.de/viewtopic.php?f=26&t=2417
http://forum.univention.de/viewtopic.php?f=54&t=2418

If this error occurs again, please use "Clone This Bug".