Sizing the hardware of your NoMachine server host(s) based on benchmarks depends on many variables due to the great variety of systems, hardware, applications and so on.
Even if we can provide some general guidelines based on our own experience and share rough data gathered in our labs (see our benchmark tests below), it's fundamental you try the NoMachine server of your choice in your environment. For this purpose, we make available a 30 days evaluation version which is fully featured. This evaluation license can be extended by contacting us and making a request.
The first step for sizing your environment is to choose the right NoMachine server type. You can visit our web site at https://www.nomachine.com/nomachine-enterprise-features or contact us, we can help to identify which is the most suitable solution for your needs.
NoMachine software can be installed on a physical machine or on a virtual machine (e.g. VMware).
In the case of multi-host environments, these sizing guidelines apply to the remote machines where sessions are effectively run. The server host that acts as gateway will mainly accept and dispatch connections which are not resource-intensive operations.
Please consider that these are only general guidelines, helpful to approximate minimum hardware requirements. Tests have to be conducted in the real environment and context of use to obtain a more accurate estimation of resources needed.
Connecting by NoMachine client with NX or SSH protocol or via web sessions doesn't reveal relevant differences in terms of CPU/RAM resources needed on the remote host.
In the case of Linux terminal server products for virtual desktops, HW requirements will mainly depend on what desktop environment you are running and what applications are running on that desktop.
For example, a lightweight desktop environment will require less resources than a 3D desktop environment.
Flash video uses more memory and CPU than a text editor; a text editor will be less demanding than a IDE or a computer graphics application like CAD/CAM software. This will need to be considered during your evaluation since resource-demanding applications can reduce the total number of functional NoMachine sessions that you can effectively get on your server.
If users need only a specific application, they can run it in a custom session which is less demanding than a full virtual desktop, but also in this case different applications may require different resources.
Please look also at the benchmark tests section of this article: it provides results of tests made in our labs. They show how much RAM is used for running different kinds of sessions and how many sessions can be run at the same time without penalising performance.
In NoMachine virtual desktops (Linux), OpenGL rendering is done by software components. This means that rendering tasks are accomplished by CPU and not offloaded onto the GPU. It's possible however to redirect the 3D rendering commands to the GPU by enabling support for the VirtualGL library in NoMachine.
NoMachine supports H.264 GPU encoding (hardware acceleration) provided by graphics cards with Nvidia Kepler microarchitecture onward and Intel Quick Sync video cards on Windows and Linux.
It supports H.264 GPU decoding on Windows and Mac hosts with hardware accelerated video cards (GPUs).
In all the other cases, H.264 software encoding/decoding is supported.
We made some tests in our labs with the following hardware:
GPU: Tesla M60
CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz (24 cores)
RAM: 125 GB
By running 10 virtual desktops at screen resolution of 1360x768 with fullscreen YouTube video, we got the following data:
GPU overall encoder usage: ~5%
GPU overall memory usage: 1338MiB / 7679MiB
GPU memory usage per nxnode.bin: 129 MiB
CPU usage per nxnode.bin: ~4.25%
This results can scale up.
We were able to run 59 sessions before the memory capacity was exhausted, with NVENC and Tesla M60. The GPU encoder usage was around 30%.
Calculating the bandwidth |
A practical test will permit to calculate the necessary bandwidth in your environment and for the applications/desktops you intend to run. NoMachine provides a built-in tool to retrieve the real bandwidth usage. Please see here for more detailed instructions:
https://www.nomachine.com/AR10K00721
We also suggest to read the following article about bandwidth usage and optimizations:
https://www.nomachine.com/AR04M00845
Test case 1: NoMachine Enterprise Desktop
NoMachine Enterprise Desktop (ED) v. 6.0.66 on a Linux host running CentOS Linux release 6.7, Kernel 2.6.32-573.el6.x86_64
Hardware specifications:
Intel(R) Xeon(R) CPU E7450 @ 2.40GHz, 6 Cores, 10 GB RAM
1.1) 1 user connected to the physical desktop
RAM usage for nx* processes: 323 MB
CPU usage for nx* processes: 7.09%
1.2) 10 users connected to the same physical desktop
RAM usage for nx* processes: 1.3 GB
CPU usage for nx* processes: 17.04%
1.3) 20 users connected to the same physical desktop
RAM usage for nx* processes: 2.5 GB
CPU usage for nx* processes: 22.39%
Test case 2: NoMachine Terminal Server (2.40 GHz, 6 Cores, 20 GB RAM)
NoMachine Terminal Server (TS) v. 6.0.66 on a Linux host running CentOS Linux release 6.7, kernel 2.6.32-573.el6.x86_64
Hardware specifications:
Intel(R) Xeon(R) CPU E7450 @ 2.40GHz, 6 Cores, 20 GB RAM
Benchmark results apply also to a multi-node environment made of Enteprise Terminal Server + Terminal Server Nodes. In particular, if virtual desktops are run on the remote nodes, such results will apply to the Terminal Server Node hosts.
In the case of virtual desktops and custom sessions, let's distinguish between: running sessions in X11 vector graphics mode(2.1) or not (2.2). This may slightly change resources requirements. Disabling X11 vector graphics mode can be more comfortable if it's known beforehand that sessions will be used mainly for media streaming. More about the X11 vector graphics mode: https://www.nomachine.com/AR02L00779
2.1) X11 vector graphics mode enabled, default
RAM usage for each virtual desktop, running:
GNOME 2.28: 325 MB
KDE 4.3.4: 326 MB
Xfce 4.8.3: 278 MB
GNOME 2.28 + Firefox 52.6.0: 608 MB
KDE 4.3.4 + Firefox 52.6.0: 610 MB
Xfce 4.8.3 + Firefox 52.6.0: 530 MB
GNOME 2.28 + FreeCAD 0.13: 500 MB
KDE 4.3.4 + FreeCAD 0.13: 518 MB
Xfce 4.8.3 + FreeCAD 0.13: 458 MB
GNOME 2.28 + LibreOffice Writer 4.2.8.2: 470 MB
KDE 4.3.4 + LibreOffice Writer 4.2.8.2: 439 MB
Xfce 4.8.3 + LibreOffice Writer 4.2.8.2: 393 MB
RAM usage for a custom session in floating window mode running the following program as single application:
Firefox 52.6.0: 494 MB
LibreOffice Writer 4.2.8.2 : 295 MB
FreeCAD 0.13: 372 MB
Number of concurrent sessions actively used without performance penalties:
i) 13 users can surf the internet with Firefox with 8 GB of memory usage and 87% overall CPU usage.
ii) 5 users working on a 3D cad app (FreeCad) with 5 GB of total memory usage and 82% overall CPU usage.
iii) 32 users using a text editor (LibreOffice) with 12 GB of total memory usage and 86% overal CPU usage
2.2) X11 vector graphics mode disabled (advisable for multimedia playing)
RAM usage for each virtual desktop, running:
GNOME 2.28: 422 MB
KDE 4.3.4: 428 MB
Xfce 4.8.3: 396 MB
GNOME 2.28 + Firefox 52.6.0: 674 MB
KDE 4.3.4 + Firefox 52.6.0: 690 MB
Xfce 4.8.3 + Firefox 52.6.0: 651 MB
GNOME 2.28 + CAD (FreeCAD 0.13): 602 MB
KDE 4.3.4 + CAD (FreeCAD 0.13): 594 MB
Xfce 4.8.3 + CAD (FreeCAD 0.13): 553 MB
GNOME 2.28 + LibreOffice Writer 4.2.8.2: 544 MB
KDE 4.3.4 + LibreOffice Writer 4.2.8.2: 526 MB
Xfce 4.8.3 + LibreOffice Writer 4.2.8.2: 488 MB
RAM usage for a custom session in floating window mode running the following program as single application:
Firefox 52.6.0: 497 MB
LibreOffice Writer 4.2.8.2: 289 MB
FreeCAD 0.13: 351 MB
Number of concurrent sessions actively used without performance penalties:
i) 5 users can surf the internet with Firefox with 3 GB of memory usage and 78% overall CPU usage.
ii) 4 users working on a 3D cad app (FreeCad) with 2 GB of total memory usage and 77% overall CPU usage.
iii) 9 users using a text editor (LibreOffice) with 5 GB of total memory usage and 80% overal CPU usage
Test case 3: NoMachine Terminal Server (2.10 GHz, 16 cores, 62 GB RAM)
NoMachine Terminal Server (TS) v. 6.0.66 on a Linux host running CentOS Linux release 7, kernel 3.10.0-693.17.1.el7.x86_64
Hardware specifications:
Intel® Xeon(R) CPU E5-2620 v4 @ 2.10GHz, 16 cores, 62 GB RAM
3.1) X11 vector graphics mode enabled, default
RAM usage for each virtual desktop, running:
GNOME 3.22.2: 596 MB
KDE 4.14.8: 590 MB
Xfce 4.12: 353 MB
GNOME 3.22.2 + Firefox 52.6.0: 958 MB
KDE 4.14.8 + Firefox 52.6.0: 903 MB
Xfce 4.12 + Firefox 52.6.0: 661 MB
GNOME 3.22.2 + FreeCAD 0.16: 893 MB
KDE 4.14.8 + FreeCAD 0.16: 776 MB
Xfce 4.12 + FreeCAD 0.16: 544 MB
GNOME 3.22.2 + LibreOffice Writer 5.0.6.2: 878 MB
KDE 4.14.8 + LibreOffice Writer 5.0.6.2: 705 MB
Xfce 4.12 + LibreOffice Writer 5.0.6.2: 460 MB
RAM usage for a custom session in floating window mode running the following program as single application:
Firefox 52.6.0: 495 MB
LibreOffice Writer 5.0.6.2: 289 MB
FreeCAD 0.16: 355 MB
3.2) X11 vector graphics mode disabled (advisable for multimedia playing), default
RAM usage for each virtual desktop, running:
GNOME 3.22.2: 693 MB
KDE 4.14.8: 706 MB
Xfce 4.12: 464 MB
GNOME 3.22.2 + Firefox 52.6.0: 1.028 MB
KDE 4.14.8 + Firefox 52.6.0: 1.025 MB
Xfce 4.12 + Firefox 52.6.0: 743 MB
GNOME 3.22.2 + FreeCAD 0.16: 948 MB
KDE 4.14.8 + FreeCAD 0.16: 872 MB
Xfce 4.12 + FreeCAD 0.16: 621 MB
GNOME 3.22.2 + LibreOffice Writer 5.0.6.2: 962 MB
KDE 4.14.8 + LibreOffice Writer 5.0.6.2: 811 MB
Xfce 4.12 + LibreOffice Writer 5.0.6.2: 562 MB
RAM usage for a custom session in floating window mode running the following program as single application:
Firefox 52.6.0: 489 MB
LibreOffice Writer 5.0.6.2: 282 MB
FreeCAD 0.16: 364 MB
Test case 4: Some examples for number of concurrent sessions actively used without performance penalties
Hardware specifications:
Intel® Xeon® CPU @ 2.10GHz, (3C/6T), 20GB RAM
OS:
CentOS 6.7
4.1) X11 vector graphics mode enabled, default
Application type |
Max n. of concurrent sessions |
RAM usage |
CPU usage |
GNOME virtual desktop |
45 |
15GB |
88% |
KDE virtual desktop |
38 |
12GB |
88% |
XFCE virtual desktop |
43 |
12GB |
86% |
Firefox in a custom session, playing a video on YouTube |
18 |
9GB |
88% |
Office in a custom session |
34 |
10GB |
87% |
FreeCad in a custom session + animation |
10 |
4GB |
87% |
4.2) X11 vector graphics disabled
Application type |
Max n. of concurrent sessions |
RAM usage |
CPU usage |
GNOME virtual desktop |
41 |
17GB |
87% |
KDE virtual desktop |
31 |
13GB |
87% |
XFCE virtual desktop |
33 |
13GB |
87% |
Firefox in a custom session playing a video on YouTube |
15 |
7GB |
86% |
Office in a custom session |
35 |
10GB |
86% |
FreeCad in a custom session playing an animation |
6 |
2GB |
82% |
Hardware specifications:
Intel® Xeon® CPU @ 2.10GHz, (8C/16T), 62GB ram
OS:
CentOS 7
4.3) X11 vector graphics mode enabled, default
Application type |
Max n. of concurrent sessions |
RAM usage |
CPU usage |
GNOME virtual desktop |
97 |
58GB |
65% |
KDE virtual desktop |
98 |
58GB |
66% |
XFCE virtual desktop |
128 |
46GB |
87% |
virtual desktop + Firefox playing a video on YouTube |
41 |
33GB |
87% |
virtual desktop + Office |
71 |
43GB |
78% |
virtual desktop + FreeCad playing an animation |
71 |
13GB |
85% |
Firefox in a custom session running a video on YouTube |
59 |
29GB |
87% |
Office running in a custom session |
132 |
38GB |
88% |
FreeCad in a custom session playing an animation |
26 |
9GB |
87% |
4.4) X11 vector graphics mode disabled
Application type |
Max n. of concurrent sessions |
RAM usage |
CPU usage |
GNOME virtual desktop |
84 |
58GB |
60% |
KDE virtual desktop |
82 |
58GB |
55% |
XFCE virtual desktop |
125 |
58GB |
80% |
virtual desktop +Firefox playing a video on YouTube |
28 |
25GB |
87% |
virtual desktop + Office |
42 |
31GB |
86% |
virtual desktop + FreeCad playing an animation |
14 |
10GB |
84% |
Firefox in a custom session playing a video on YouTube |
67 |
33GB |
88% |
Office running in a custom session |
123 |
35GB |
88% |
FreeCad in a custom session playing an animation |
27 |
10GB |
88% |