stateless thin cliens with decent graphics performance - possible?
csillag.kristof at united-consult.hu
Sat Jun 26 04:17:00 PDT 2010
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
* * *
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:
More information about the xorg