.. _requirements_server:

Server Requirements
-------------------

ThinLinc System and Software Requirements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Minimum requirements:

-  An x86_64 (or compatible) CPU

-  GLIBC 2.12, or newer

-  Python 3.4, or newer

-  RPM or dpkg support

-  Libraries and commands from LSB 4.1, specifically those listed in the
   Core and Printing modules (except LSB specific interfaces).
   Additionally, "libX11" is also required.

-  ss from iproute2

-  An SSH (secure shell) server

-  Accurate time synchronization between all ThinLinc servers

Optional requirements:

-  PyGObject and GTK+ 3.20 or newer

-  python-ldap

-  CUPS (Common UNIX Printing System)

As long as your platform fulfills the requirements above, ThinLinc
should work as expected.

.. _requirements_server_sizing:

Server Sizing
~~~~~~~~~~~~~

The amount of computer resources needed to run a ThinLinc cluster varies
greatly with the number of users, the type of hardware used for the
servers, the application mix run by the users and the type of users.
Trying to estimate the number of servers needed for a specific cluster
is not something that can be done using a predefined table of facts.
Instead decisions should be made based on benchmarks and experience.

Below, we will try to give some ideas on what kind of resources are
needed based on customer experience. With time and experience from your
own cluster with your own application set, you will work out your own
set of figures.

It is important to remember that the ThinLinc load balancing feature
makes it easy to add another server when the need arises. Start out with
a number of servers and add more as the load increases.

Types of Resources
^^^^^^^^^^^^^^^^^^

There are several types of resources needed in a ThinLinc cluster.

-  **Disk**

   About 100MiB of disk is needed for the software and data being part
   of ThinLinc. Each active session also requires a very small amount of
   data (normally less than 100KiB) for storage of session data and the
   session log. In addition to that, there must be disk available for
   the operating system, the applications users run and logs.

-  **CPU**

   The amount of CPU is very hard to estimate as it depends completely
   on the set of applications run by the users, and also on how active
   the users are as well as which response times are accepted by the
   users. A server that without problem copes with 100 users running
   LibreOffice calc updating a spreadsheet now and then will cope with a
   considerably lower amount of concurrent users if they are accessing
   internet sites with streaming video.

   For a full desktop (KDE or Gnome) with typical office and internet
   applications (LibreOffice, Firefox, some graphics program and users
   visiting multimedia-intensive web pages, the amount of CPU needed is
   somewhere between 150 and 300MHz per active user.

   The CPU figures above are based on experience from customers running
   Intel Xeon 7140M (Netburst) CPUs. For other types of CPU, the figures
   should be adjusted accordingly.

-  **Memory**

   The amount of memory, just as the amount of CPU, is also very
   dependent on type application set and how active the users are.

   For a full desktop (KDE or Gnome), expect the need for 100-200MiB of
   memory per user, not including the memory required for individual
   applications.
