Новый год начался для нас с возвращения на Хабр. Итак, daddy’s home. Мы решили вернуть наш блог к жизни, чтобы делиться новостями компании, технологическими секретами, жизненным опытом и общаться c вами, тем более и рассказать нам есть о чем.
Новую страницу нашего блога мы начнем, пожалуй, с небольшого эксперимента. Мы решили развернуть наш офисный пакет ONLYOFFICE на мини-серверах. В качестве непривычной тестовой среды для нашего ПО мы использовали три разных (по стоимости и, соответственно, мощности процессора) машины Intel NUC.
Что из этого всего вышло — читайте далее.
Зачем нам это?
Нам нравится идея мини-серверов для небольших команд и домашних офисов. Недавно мы выпустили корпоративное серверное решение ONLYOFFICE Enterprise Edition и решили развеять миф о том, что для того, чтобы оно работало, нужна какая-то массивная аппаратная поддержка. Большой сервер и отдельное помещение в качестве его резиденции это, конечно, хорошо, но вовсе не обязательно, особенно в случае маленьких компаний.
В общем, мы за компактность и минимализм. С такими мыслями мы и отправились на поиски подходящего железа для претворения концепции в жизнь. Конечно, свой итоговый выбор мы уже заспойлерили в начале статьи, но теперь мы еще его и обоснуем.
Наши подопытные
В общем-то наши требования к железу вполне очевидны: что-то понятное, надежное, помещающееся в пределы разумного в плане размера и желательно недорогое. И мы остановились на Intel NUC'ах. Возможно, это было несколько эмоциональное решение, основанное на привлекательной внешности их железочек, но, в итоге, наш список покупок выглядел так:
С такими приобретениями мы почти готовы приступить к запланированным экспериментам.
Настройка
Но сначала необходимо подготовить наших «пациентов». Это простая и не слишком обременительная процедура всего в четыре шага:
Шаг 1. Ставим Ubuntu 15.04.
Шаг 2. Обновляем ядро до последнего (У Mono есть проблемы с некоторыми ядрами, но на последних все точно работает).
Шаг 3. Ставим Docker (мы поставили последнюю версию из их репы, то есть Docker version 1.9.1, build a34a1d5, но, на самом деле, подойдет 1.4 или выше).
Шаг 4. Используя скрипт, разворачиваем docker-контейнеры с ONLYOFFIC’ом, а еще точнее с последним серверным решением ONLYOFFICE Enterprise Edition.
Проделав эти манипуляции со всеми тремя NUC’ами, мы приступаем к самому интересному, а именно тестируем производительность нашего решения на разном железе.
Самое интересное
Чтобы посмотреть, как себя чувствует наш софт в новом окружении, мы решили воспользоваться JMeter’ом.
Сразу оговариваемся, что проводим ни в коем случае не нагрузочное тестирование, а тестирование производительности. Мы не ищем узкие места по нагрузке в приложении, а смотрим, насколько наши железочки хороши для такого ПО.
Итак, мы пишем небольшой скрипт, который дергает все важные части системы и создает определенную нагрузку. Так как наши подопытные NUC'и всё-таки не являются настоящими серверами, мы берем тестирование в 10,20,30,40 и 50 потоков. С такой нагрузкой мы не упираемся в ширину канала, и, соответственно, нам не нужно поднимать несколько распределенных клиентов.
Параллельно с тем, как на сервере создается нагрузка, мы открываем браузер и смотрим, сколько времени грузится страничка.
Ramp up период для всех прогонов составлял 1 секунду. Для получения каждого результата делалось 10 замеров. В таблицу с результатами мы включили только средние значения. А вот, собственно, и она: )
Результаты
Мы получили довольно неплохие и, в принципе, предсказуемые результаты.
Правда, NUC (N3700) показал себя несколько лучше, чем мы ожидали. Из-за слабенького процессора мы не возлагали на него больших надежд, однако тесты показали, что чисто теоретически такая железочка подойдет для небольшой команды до 15 человек. Впрочем, если говорить о судьбе нашей «пациентки», то она, вероятнее всего, всё равно проведет остаток дней в конференц-зале.
Результаты NUC5i3RYH также вполне ожидаемо оказались чуть лучше, чем у предшественника. На 10 потоках эта железка выдала 20 RPS, и потому вполне подойдет для небольшого офиса в 15 человек.
Третья с наиболее мощным процессором ожидаемо показала лучшие результаты и выдала почти 30 запросов в секунду. По нашим наблюдениям, этого достаточно для нормальной работы офиса в 50 человек, если конечно все эти 50 человек не бросятся одновременно конвертировать pdf-файлы по 800 мегабайт.
Сухой остаток
Конечно, такой вариант не сравнится с полноценной серверной версией по мощностям и надежности. Зато это отличный вариант для тех, кто по соображениям безопасности не хочет хранить свои данные «где-то там» в публичном облачном сервисе и при этом не имеет возможности или желания обзавестись собственным сервером. Такая коробочка вполне прилично работает с нашим ПО и может стоять в центре небольшого офиса рядом с принтером, никого не раздражая.
Небольшой лайфхак: мы также использовали такое решение в качестве «выставочного» варианта. «Пациент» номер три (NUC5i5RYH) сопровождал нас на международный форум «Открытые инновации». С его помощью мы успешно представили на мероприятии нашу новую серверную версию — симпатичная внешность и вполне хорошая производительность сделали своё дело.
Новую страницу нашего блога мы начнем, пожалуй, с небольшого эксперимента. Мы решили развернуть наш офисный пакет ONLYOFFICE на мини-серверах. В качестве непривычной тестовой среды для нашего ПО мы использовали три разных (по стоимости и, соответственно, мощности процессора) машины Intel NUC.
Что из этого всего вышло — читайте далее.
Зачем нам это?
Нам нравится идея мини-серверов для небольших команд и домашних офисов. Недавно мы выпустили корпоративное серверное решение ONLYOFFICE Enterprise Edition и решили развеять миф о том, что для того, чтобы оно работало, нужна какая-то массивная аппаратная поддержка. Большой сервер и отдельное помещение в качестве его резиденции это, конечно, хорошо, но вовсе не обязательно, особенно в случае маленьких компаний.
В общем, мы за компактность и минимализм. С такими мыслями мы и отправились на поиски подходящего железа для претворения концепции в жизнь. Конечно, свой итоговый выбор мы уже заспойлерили в начале статьи, но теперь мы еще его и обоснуем.
Наши подопытные
В общем-то наши требования к железу вполне очевидны: что-то понятное, надежное, помещающееся в пределы разумного в плане размера и желательно недорогое. И мы остановились на Intel NUC'ах. Возможно, это было несколько эмоциональное решение, основанное на привлекательной внешности их железочек, но, в итоге, наш список покупок выглядел так:
- Intel NUC5PPYH на базе Intel Pentium N3700 с частотой 1,6 ГГц, с памятью типа DDR3L и поддержкой 2,5 дюймовых дисков или SSD. Стоимость покупки: 14 550 рублей.
- Intel NUC NUC5i3RYH на базе процессора Intel Core i3-5010U, с памятью типа DDR3L и пространством для 2,5-дюймового жесткого диска или твердотельного накопителя формата M.2. Покупка обошлась нам в 21 тысячу рублей (на момент написания статьи — 24 360 рублей).
- Intel NUC NUC5i5RYH (процессор Intel Core i5-5250U, память DDR3L, пространство для 2.5” HDD или SSD M2). Эта коробочка стоила примерно 31 тысячу рублей (на момент написания статьи — 31 720 рублей).
С такими приобретениями мы почти готовы приступить к запланированным экспериментам.
Настройка
Но сначала необходимо подготовить наших «пациентов». Это простая и не слишком обременительная процедура всего в четыре шага:
Шаг 1. Ставим Ubuntu 15.04.
Шаг 2. Обновляем ядро до последнего (У Mono есть проблемы с некоторыми ядрами, но на последних все точно работает).
Шаг 3. Ставим Docker (мы поставили последнюю версию из их репы, то есть Docker version 1.9.1, build a34a1d5, но, на самом деле, подойдет 1.4 или выше).
Шаг 4. Используя скрипт, разворачиваем docker-контейнеры с ONLYOFFIC’ом, а еще точнее с последним серверным решением ONLYOFFICE Enterprise Edition.
Проделав эти манипуляции со всеми тремя NUC’ами, мы приступаем к самому интересному, а именно тестируем производительность нашего решения на разном железе.
Самое интересное
Чтобы посмотреть, как себя чувствует наш софт в новом окружении, мы решили воспользоваться JMeter’ом.
Сразу оговариваемся, что проводим ни в коем случае не нагрузочное тестирование, а тестирование производительности. Мы не ищем узкие места по нагрузке в приложении, а смотрим, насколько наши железочки хороши для такого ПО.
Итак, мы пишем небольшой скрипт, который дергает все важные части системы и создает определенную нагрузку. Так как наши подопытные NUC'и всё-таки не являются настоящими серверами, мы берем тестирование в 10,20,30,40 и 50 потоков. С такой нагрузкой мы не упираемся в ширину канала, и, соответственно, нам не нужно поднимать несколько распределенных клиентов.
Параллельно с тем, как на сервере создается нагрузка, мы открываем браузер и смотрим, сколько времени грузится страничка.
Ramp up период для всех прогонов составлял 1 секунду. Для получения каждого результата делалось 10 замеров. В таблицу с результатами мы включили только средние значения. А вот, собственно, и она: )
Number of thread group |
Errors % |
Samples |
Page Load (sec) |
Speed (kB/s) |
RPS |
10 |
0.65 |
1394 |
9.94 |
106.53 |
10.56 |
20 |
0.65 |
3095 |
19.38 |
85.4 |
8.48 |
30 |
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 |
10 |
0.37 |
2441 |
7.41 |
208.36 |
20.69 |
20 |
1.11 |
3516 |
19.52 |
131.31 |
19.12 |
30 |
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 |
10 |
0.23 |
3536 |
3.96 |
325 |
29.22 |
20 |
0.55 |
3605 |
6.98 |
320.06 |
29.31 |
30 |
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 |
Результаты
Мы получили довольно неплохие и, в принципе, предсказуемые результаты.
Правда, NUC (N3700) показал себя несколько лучше, чем мы ожидали. Из-за слабенького процессора мы не возлагали на него больших надежд, однако тесты показали, что чисто теоретически такая железочка подойдет для небольшой команды до 15 человек. Впрочем, если говорить о судьбе нашей «пациентки», то она, вероятнее всего, всё равно проведет остаток дней в конференц-зале.
Результаты NUC5i3RYH также вполне ожидаемо оказались чуть лучше, чем у предшественника. На 10 потоках эта железка выдала 20 RPS, и потому вполне подойдет для небольшого офиса в 15 человек.
Третья с наиболее мощным процессором ожидаемо показала лучшие результаты и выдала почти 30 запросов в секунду. По нашим наблюдениям, этого достаточно для нормальной работы офиса в 50 человек, если конечно все эти 50 человек не бросятся одновременно конвертировать pdf-файлы по 800 мегабайт.
Сухой остаток
Конечно, такой вариант не сравнится с полноценной серверной версией по мощностям и надежности. Зато это отличный вариант для тех, кто по соображениям безопасности не хочет хранить свои данные «где-то там» в публичном облачном сервисе и при этом не имеет возможности или желания обзавестись собственным сервером. Такая коробочка вполне прилично работает с нашим ПО и может стоять в центре небольшого офиса рядом с принтером, никого не раздражая.
Небольшой лайфхак: мы также использовали такое решение в качестве «выставочного» варианта. «Пациент» номер три (NUC5i5RYH) сопровождал нас на международный форум «Открытые инновации». С его помощью мы успешно представили на мероприятии нашу новую серверную версию — симпатичная внешность и вполне хорошая производительность сделали своё дело.