Итоги акции «Хочу ThinkServer», первый отчёт

Привет, друзья! Помните, в начале февраля прямо в этом самом блоге мы обещали на время предоставить серверы Lenovo ThinkServer пользователям Хабра? Тем, разумеется, кто напишет небольшой рассказ о себе и объяснит, для какой цели устройства нужны.

9b290f7551014a6ab2c02b7eb69f00cf.jpg
Мы сразу отсекали все варианты с уже состоявшимися проектами, где просто требовался «ещё один ящик» для увеличения мощности. Приоритет отдавали людям, которые разрабатывают что-то самостоятельно, а железо ищут для того, чтобы протестировать свои проекты на серьёзной машине, аренда или покупка которой пока не укладывается в рамки бюджета. С тех пор предполагавшийся срок тестирования прошёл (в личной переписке с добровольцами мы заявляли максимум 4–5 месяцев), и теперь спешим поделиться отчётами о том, что же из этого всего получилось.
Героем первого отчёта по итогам проекта «Хочу ThinkServer» стал Андрей sleepwalkerone Ганюшкин. Он занимается веб-разработкой образовательных сервисов в российском офисе крупной международной компании, специализирующейся на выпуске академических изданий. Однако сервер Андрей попросил у нас для тестирования собственного приложения и делал всё в свободное от работы время.

064973bdaf19443e8fe51a374ba5b5fe.png

Так что одному из наших Think Server предстояло стать платформой для запуска программы для сложных математических вычислений и обкатки функций менеджера, управляющего очередью задач и системой ресурсов. Ранее этот софт ни разу не тестировался при серьёзной нагрузке, поскольку запускался на обычном домашнем компьютере с процессором Intel Core i7 и 16 ГБ RAM.

Андрей попросил у нас ThinkServer RD640. Конфигурация получилась следующей: 2xXeon E5–2650v2, 128Gb DDR3, 2×100Gb, 2×300Gb 15K SAS 6Gbps, 4×600Gb 10K 6Gbps, 2×500Gb 7.2K 6Gbps, LSI 9270CV-8i Controller, 2×800W PSU Hot Swap.

cd4b3afe9dc94752a8a854dc88ce360e.jpg

Андрей: После подтверждения заявки мне просто привезли сервер и дали им пользоваться. Без 100500 бумажек, прямо с доставкой до подъезда приветливым человеком. Если честно, я ожидал гораздо более сложной процедуры.


В тот момент, когда сервер Андрею привезли, разработка менеджера для управления задачами была как раз практически завершена. Суть его работы сводится к формированию очереди на расчёт, получению ресурсов, конфигурированию, отправке задач на выполнение и дальнейшему сбору готовых результатов. Ресурсами в данном случае выступали три типа вычислительных узлов: виртуальная машина, физический сервер или виртуальная машина в облаке Google. Первый пункт предполагает виртуализацию средствами OpenStack, либо при помощи скриптов собственной разработки. Исходя из этих задач все и тестировалось в течение 3 месяцев.

Соответственно, OpenStack и скрипты управляли виртуальными машинами, которые нагружались вычислениями. Выяснилось, что производительность немного проседает, но было решено, что это приемлемая плата за виртуализацию. А проверяя процесс создания ВМ Андрей столкнулся с ограничениями в скорости развёртывания образов даже на быстрых дисках.

Андрей: Скрипты пришлось переписать почти полностью, но зато теперь получить ресурсы из нашей системы можно практически мгновенно.


Зачем понадобилась виртуализация? Это вызвано особенностями работы вычислительного комплекса. Одна из структур, где предполагается его применение — Московский Государственный Университет Леса (МГУЛ). Вычислительный комплекс предоставляет ресурсы для работы студентов в лаборатории. А это, в свою очередь, накладывает определённые требования по безопасности и, главное, скорости выделения ресурсов в пользование. Эту скорость благодаря тестам удалось успешно увеличить, запустив софт в «боевых» условиях и доработав его на основе собранных данных.

Андрей: При помощи сервера Lenovo удалось доработать продукт и, к тому же, теперь совершенно точно стало понятно, чего ожидать от софта при запуске на серверном железе.


В качестве одного из бонусов при предоставлении сервера на тест мы заявляли техническую и гарантийную поддержку — ровно такую же, какую на три года получают покупатели наших ThinkServer.

Андрей: Проверить эти преимущества мне не удалось. Но я всерьёз собирался воспользоваться техподдержкой, когда начал устанавливать на RD640 Ubuntu Server, поддержка которого в спецификациях не заявлена. Но всё заработало без проблем.


В итоге при помощи нашего оборудования Андрею удалось достигнуть поставленной цели: он протестировал своё приложение на серверном железе при серьёзной нагрузке. В результате исправлены баги, рассчитана зависимость вычислительных мощностей от количества работающих в системе студентов.

Андрей: Я считаю, что всё прошло удачно. Похоже, что за три месяца тестирования получилось собрать все нужные данные. Не исключено, что именно RD640 я буду использовать как базу для небольших вычислительных комплексов — соотношение цены и доступных ресурсов показалось мне достаточно привлекательным. Но в качестве основного вычислительного узла модель не подходит — стало понятно, что нужно более производительное железо.


Немного занимательной статистики
Обработка запроса «Выделить ресурсы»
В начале тестирования: ~49 sec
В конце тестирования: ~3 sec

Создание виртуальной машины
В начале тестирование: ~20 sec
В конце тестирования: ~24 sec

Производительность y-cruncher
Banchmark Options:

→ Benchmark Pi  (all in ram)
→ Single-Threaded
→ 100,000,000  547 MiB

Оutput for host:
Reserving Working Memory… 465 MiB
Constructing Twiddle Tables… 82.9 MiB
Allocating I/O Buffers… 0 bytes

Begin Computation:
Summing Series… 7,051,370 terms
Time:    35.713 seconds  (0.010 hours)                                       
Division…
Time:    2.083 seconds  (0.001 hours)                                        
InvSqrt…
Time:    1.189 seconds  (0.000 hours)                                        
Final Multiply…
Time:    1.076 seconds  (0.000 hours)                                        

Pi:  40.061 seconds  (0.011 hours)

Base Converting:
Time:    3.697 seconds  (0.001 hours)                                        

Writing Decimal Digits:   100,000,000  digits written

Verifying Base Conversion…
Time:    1.237 seconds  (0.000 hours)                                        

Total Computation Time:             43.758 seconds  (0.012 hours)
Total Time (with output + verify):  45.364 seconds  (0.013 hours)

CPU Utilization:        99.9357%
Multi-core Efficiency:  3.492%

Output for VM (с нагрузкой на хост):
   
Reserving Working Memory… 416 MiB
Constructing Twiddle Tables… 3.00 MiB
Allocating I/O Buffers… 0 bytes

Begin Computation:

Summing Series…  7,051,370 terms
Time:    72.112 seconds  (0.020 hours)                                       
Division…
Time:    4.116 seconds  (0.001 hours)                                        
InvSqrt…
Time:    2.593 seconds  (0.001 hours)                                        
Final Multiply…
Time:    1.795 seconds  (0.000 hours)                                        

Pi:  80.616 seconds  (0.022 hours)

Base Converting:
Time:    7.828 seconds  (0.002 hours)                                        

Writing Decimal Digits:   100,000,000  digits written

Verifying Base Conversion…
Time:    2.665 seconds  (0.001 hours)                                        

Total Computation Time:             88.445 seconds  (0.025 hours)
Total Time (with output + verify):  91.819 seconds  (0.026 hours)

CPU Utilization:        99.9181%
Multi-core Efficiency:  99.9181%

Андрей: Мы рассматривали два режима: работа в лаборатории и вычислительные задачи. Для комфортной работы с приложением в лаборатории нормальная загрузка — это 2–2,5 виртуальных машины на поток. Очевидно, что идеальный случай для вычислений — это использование всего сервера без виртуализации. При необходимости виртуализации — одна виртуальная машина на поток.



При помощи сервера Lenovo Андрею удалось лучше оценить работу своего приложения и понять, что из него можно сделать нечто гораздо более масштабное и интересное, чем есть сейчас. Не секрет, что это можно было бы сделать и при помощи других решений, но мы действительно рады, что наше оборудование помогло хорошему и изобретательному человеку. За это, кстати, большое спасибо и всему Хабракомьюнити.

Когда к нам вернутся серверы от других участников проекта «Хочу ThinkServer», то мы обязательно продолжим публиковать отчёты. А этот материал, так сказать, «первый блин», поэтому мы будем рады вашим советам по поводу того, как сделать их интереснее и подробнее. По доброй традиции специалисты Lenovo в комментариях ответят на все вопросы по ThinkServer, а Андрей сможет подробнее рассказать о своём приложении, если вам захочется узнать о нем больше.

© Habrahabr.ru