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:
- Intel NUC5PPYH based on the Intel Pentium N3700 with a frequency of 1.6 GHz, with DDR3L memory and support for 2.5 inch drives or SSD. Purchase price: 14 550 rubles.
- Intel NUC NUC5i3RYH based on the Intel Core i3-5010U processor, with DDR3L memory and space for a 2.5-inch hard disk or solid-state drive M.2. The purchase cost us 21 thousand rubles (at the time of writing this article - 24 360 rubles).
- Intel NUC NUC5i5RYH (Intel Core i5-5250U processor, DDR3L memory, space for 2.5 ”HDD or SSD M2). This box cost about 31 thousand rubles (at the time of writing this article - 31 720 rubles).
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.