📜 ⬆️ ⬇️

Server in your pocket: deploy ONLYOFFICE on Intel NUCs

New year began for us with the return to Habr. So daddy's home. We decided to bring our blog back to life in order to share company news, technological secrets, life experience and communicate with you, all the more and tell us something about it.

A new page of our blog, we begin, perhaps, with a small experiment. We decided to deploy our ONLYOFFICE office suite on mini-servers. As an unusual test environment for our software, we used three different (at a cost and, accordingly, processor power) Intel NUC machines.

What came of it all - read on.
')


Why do we need it?

We like the idea of ​​mini servers for small teams and home offices. We recently released ONLYOFFICE Enterprise Edition, a corporate server solution and decided to dispel the myth that in order for it to work, we need some kind of massive hardware support. A large server and a separate room as his residence are, of course, good, but not necessarily, especially in the case of small companies.

In general, we are for compactness and minimalism. With such thoughts, we set out in search of a suitable iron to put the concept into practice. Of course, we have already argued our final choice at the beginning of the article, but now we will also justify it.

Our experimental

In general, our requirements for the gland are quite obvious: something clear, reliable, placed within a reasonable in terms of size and preferably inexpensive. And we stopped at Intel NUC'ah. Perhaps it was a somewhat emotional decision based on the attractive appearance of their glands, but in the end, our shopping list looked like this:



With such acquisitions, we are almost ready to embark on planned experiments.

Customization

But first you need to prepare our "patients". This is a simple and not too burdensome procedure in just four steps:

Step 1. Install Ubuntu 15.04.

Step 2. Update the kernel to the last (Mono has problems with some kernels, but everything works fine on the latter).

Step 3. We put Docker (we put the latest version of their turnips, that is, Docker version 1.9.1, build a34a1d5, but, in fact, 1.4 or higher will do).

Step 4. Using the script, we deploy docker-containers with ONLYOFFIC, and even more precisely with the latest server solution ONLYOFFICE Enterprise Edition .

Having done these manipulations with all three NUCs, we proceed to the most interesting, namely, we are testing the performance of our solution on different hardware.



The most interesting

To see how our software feels in the new environment, we decided to use JMeter.

Immediately make a reservation that in no case do we perform load testing, but performance testing. We are not looking for bottlenecks in the load in the application, but we look at how good our hardware is for such software.

So, we write a small script that jerks all the important parts of the system and creates a certain load. Since our experimental NUCs are not real servers anyway, we take 10,20,30,40 and 50 threads. With such a load, we do not rest on the width of the channel, and, accordingly, we do not need to raise several distributed clients.

In parallel with the way the load is created on the server, we open the browser and see how long the page loads.

The ramp up period for all runs was 1 second. For each result 10 measurements were made. In the table with the results we included only the average values. And here, actually, she is :)
Number of thread group
Errors%
Samples
Page load (sec)
Speed ​​(kB / s)
RPS
ten
0.65
1394
9.94
106.53
10.56
20
0.65
3095
19.38
85.4
8.48
thirty
0.51
5845
20.01
97.65
9.66
40
0.75
5311
22.46
101.6
10.19
50
0.61
8143
27.70
101.26
10.05






Number of thread group
Errors%
Samples
Page load (sec)
Speed ​​(kB / s)
RPS
ten
0.37
2441
7.41
208.36
20.69
20
1.11
3516
19.52
131.31
19.12
thirty
0.65
4602
20.19
209
18.82
40
0.78
5251
30.69
168.23
16.83
50
0.89
10689
50.41
166.42
16.6






Number of thread group
Errors%
Samples
Page load (sec)
Speed ​​(kB / s)
RPS
ten
0.23
3536
3.96
325
29.22
20
0.55
3605
6.98
320.06
29.31
thirty
0.95
6625
18.98
208
28.77
40
0.55
6671
21.68
310
28.03
50
0.67
7358
24.18
309.5
28.08

results

We got pretty good and, in principle, predictable results.

True, the NUC (N3700) proved to be somewhat better than we expected. Because of a weak processor, we did not pin great hopes on it, but tests showed that, theoretically, this hardware would be suitable for a small team of up to 15 people. However, if we talk about the fate of our "patient", then she will most likely still spend the rest of her days in the conference room.

The results of the NUC5i3RYH were also quite expected to be slightly better than the predecessor. On 10 threads, this piece of hardware issued 20 RPS, and therefore it is quite suitable for a small office of 15 people.

The third with the most powerful processor expectedly showed the best results and issued almost 30 requests per second. According to our observations, this is enough for the normal operation of an office of 50 people, unless of course all these 50 people rush to simultaneously convert PDF files to 800 megabytes.

Dry residue

Of course, this option can not be compared with a full-fledged server version in terms of power and reliability. But this is a great option for those who, for security reasons, do not want to store their data “somewhere there” in a public cloud service and at the same time have no opportunity or desire to acquire their own server. Such a box works pretty well with our software and can stand in the center of a small office next to the printer, without annoying anyone.

A small life hack: we also used this solution as an “exhibition” option. "Patient" number three (NUC5i5RYH) accompanied us to the international forum "Open Innovation". With it, we successfully presented our new server version at the event - good looks and quite good performance did their job.

Source: https://habr.com/ru/post/275009/


All Articles