stateless thin cliens with decent graphics performance - possible?

Csillag Kristof csillag.kristof at united-consult.hu
Sat Jun 26 04:17:00 PDT 2010


Hi all,

I am trying to improve my thin client installation.

I have a completely heterogeneous set of (x86-based) thin client 
hardware and monitors, which I would like to use interchangeably.

   * * *

My current configuration looks like this:

    - Both the server and the clients run customized Debian
		(amd64 and i386)
    - The basics are handled by LTSP.
    - The user sessions are handled by VNC.
    - The thin clients run X themselves,
	and view the user sessions using xvncviewer.

I run a patched and locally modified version of VNC, which allows xrandr 
1.1-based resizing of running sessions, and can retain DPI settings.
With this configuration, I can

     - Have persistent sessions (user can log of the session,
	and log into them again, without closing the programs)
     - Have stateless thin clients (I can just power-cycle the thin 
	client, relogin, nothing happens to my session)
     - Move sessions between clients (Log out on one client,
	log in on an other, continue my session exactly where I was)
     - Use the same session (without changing any settings) on all
	monitors, independently of size and resolution.
	(This is really sweet.)

This is all good and well, but thanks to VNC, the graphics performance 
is horrible, especially on the bigger screens.
(For example, on my 1600x1200 monitor, I can clearly follow the 
full-screen windows refreshing, which is no big feat, since it takes 
several seconds.)

   * * *

On the other hand, I can run X sessions directly from my thin clients to 
the central server. This way, I can get really decent graphics 
performance, even compositing window managers work completely fine (as 
they should, since (at least some of) my thin clients have really strong 
specs, like Mobile Sempron 2100+ CPU and and Nvidia G98  graphics.)

However, with this, I lose the ability to suspend I resume my sessions, 
move sessions between terminals, retain session despite terminal (or 
power) failures, etc.

All in all, albeit very tempting, this second solution is unacceptable, 
since to prevent data loss, I would need to install UPSs for all 
clients, and even then, session migration would not be possible.

   * * *

The obvious question is: is there a solution which would have the best 
of both worlds?
(My minimum requirements would be stateless, movable sessions, and 
decent 2D performance.)

Thank you for your help:

   Kristof Csillag






More information about the xorg mailing list