Проверено Росатомом

Нагрузоустойчивость - ключевой фактор любой системы управления сайтами. Какая бы ни была функциональность CMS, если сайт не работает, всё не имеет смысла. Поэтому мы уделяем повышенное внимание производительности DIAFAN.CMS и её отказоустойчивости. В начале 2018 года специалисты госкорпорации РосАтом подтвердили высокие характеристики DIAFAN.CMS.

Цели тестирования

С 2014 года DIAFAN.CMS неоднократно занимала первые места в независимых исследованиях на нагрузоустойчивость, с большим отрывом оставляя за собой все коммерческие CMS, но мы хотели официального подтверждения нашей производительности и максимально точного разбора поведения системы на сервере, поиск узких мест и т.д. Поэтому начали искать компетентных и авторитетных специалистов, способных провести тестирование и дать такую оценку. При этом важно, чтобы эти люди не были ангажированы с нами, это не были наши партнеры или "самоаттестованные" специалисты, с которыми можно договориться и "нарисовать" любые цифры. Поэтому мы выбрали "Гринатом" - центр обслуживания информационных технологий Госкорпорации РосАтом, её подразделение.

Росатом - российская госкорпорация, один из глобальных технологических лидеров, входит в число крупнейших компаний Российской Федерации, объединяет активы в области атомной энергетики, проектирования и сооружения АЭС, энергетического машиностроения. А также в сферу деятельности Росатома входит проведение научных исследований, суперкомпьютеры и программное обеспечение, производство различной ядерной и неядерной инновационной продукции. Атомная энергетика - сфера, требующая высочайшей надёжности, стабильности и отказоустойчивости, где невозможны раздутые цифры и любые неточности, именно поэтому мы обратились к IT-специалистам именно этой Госкорпорации и получили согласие на проведение тестирования.

Задачами тестирования были обозначены:

  • определение максимального количества одновременных посетителей, которое выдерживает DIAFAN.CMS, сохраняя допустимое время ответа сервера;
  • выявление параметров нагрузки системы, при которых отсутствует деградация производительности ключевых операций и утечка системных ресурсов.

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

Немного о нагрузоустойчивости

Обеспечить отказоустойчивость возможно двумя способами: либо сильно повысить системные требования к платформе, на которой работает CMS, проще говоря, требовать для её работы мощные и дорогие сервера, либо работать с алгоритмами самой системы, грамотно используя ресурсы любого сервера (включая виртуального) и даже обычного хостинга. Мы в DIAFAN.CMS выбрали второй вариант и разработали уникальные алгоритмы кеширования и оптимизации программного кода. Как видно по результатам исследований, кратковременные всплески посещаемости DIAFAN.CMS выдерживает лучше всех. Однако, помимо пиковых нагрузок в течение небольшого времени нужно быть уверенным, что система выдержит и продолжительную постоянную нагрузку, так называемый тест надежности. Выдержать пик, используя ресурсы сервера не так сложно, но вот накопить и дать утечку памяти или дискового пространства, например, через несколько часов/дней риск есть у многого ПО. Эти моменты мы и планировали изучить.

Выбор сайта, платформы и инструментов для тестирования

Безусловно, располагая физическим выделенным сервером вроде Xeon E5 с памятью 64ГБ и SSD дисками, можно не особо беспокоиться о производительности CMS, ведь такое железо обеспечит результаты вплоть до нескольких тысяч посетителей в день даже для самой кривой и неоптимизированной системы. Однако, аренда такого сервера стоит около 18000 рублей в месяц. Большинство же владельцев типовых сайтов не могут себе позволить такие расходы, и используют недорогие виртуальные хостинги в пределах 300 рублей в месяц, а владельцы достаточно посещаемых интернет-магазинов максимум виртуальные сервера в пределах 1500 рублей ежемесячно. Именно поэтому главным условием при проведении нагрузочного тестирования было использование типового недорого виртуального сервера. Для тестирования мы выбрали стандартный VPS-сервер компании AdminVPS за 1300 рублей в месяц. Процессор 2x2600Mhz, память 2Гб и 30Гб дискового пространства (более подробно о сервере и его характеристиках в полном техническом отчете ниже).

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

Раздувать базу на сотни тысяч товаров мы не стали, так как большинство средних интернет-магазинов рунета имеют номенклатуру как раз в несколько тысяч позиций максимум. К тому же технически основная нагрузка на сервер идет при формировании всей страницы системой управления сайтом, но не при отборе пары десятков товаров на страницу из базы, даже если она миллионная. Поэтому количество товаров в базе не так принципиально при проверке нагрузоустойчивости, как количество одновременных посетителей на сайте.

Нагрузочное тестирование проводилось с помощью ПО HP LoadRunner, которое полностью эмулируют типовое пользовательское поведение от стандартного серфинга, поиска, фильтрации и сортировки товарных позиций до регистрации пользователей, сравнения товаров и оформления заказов и т.д.

Совместно со специалистами хостинга компании AdminVPS сайт был оптимизирован, настроена отдача статического контента и кеширование.

Так как простой серфинг не так сильно нагружает сервер, как активные действия, типа поиска товаров, фильтров по ним, а также отправка заказов, мы попросили сделать упор при тестировании именно на интерактивные действия посетителей магазина. Были разработаны сценарии поведения пользователей, где почти каждый из которых должен был:

  • Добавить продукт в корзину
  • Добавить продукт для сравнения
  • Открыть главную страницу
  • Открыть корзину
  • Открыть карточку товара
  • Открыть страницу "Сравнить"
  • Открыть страницу "Контакты"
  • Открыть страницу "Доставка и оплата"
  • Открыть страницу "Ещё"
  • Открыть страницу "Вопрос-ответ"
  • Открыть страницу "Регистрация"
  • Оформить заказ
  • Оформить заказ "В один клик"
  • Отправить вопрос в форме "Задать вопрос"
  • Переход в один из каталогов магазина
  • Поиск продукта по названию
  • Регистрация пользователя
  • Сортировка по всем критериям
  • Сортировка по цвету
  • Сортировка по производителю
  • Сортировка по цене
  • Сортировка по стилю

Нагрузочное тестирование

Тестирование проводилось в два этапа. Сначала выяснялась максимальная нагрузка, при которой на выбранном сервере DIAFAN.CMS продолжает отдавать контент, сохраняя адекватное время ответа сайта. Под адекватным временем традиционно подразумевается максимум 0.5 секунд, но в связи с особенностями LoadRunner, который не использует браузерный кеш и скачивает все CSS и JS каждый раз заново, считая время ответа от запроса до полного рендера страницы, допустимым считалось время вплоть до секунды. Затем берется профиль 80% от максимальной нагрузки и система нагружается на продолжительное время, минимум 12 часов. Это нужно чтобы определить не накапливаются ли какие-нибудь артефакты, которые могут обрушить сервер, но сразу не проявляются.

Подробный технический отчет о тестировании.

Результаты тестирования

По результатам проекта, на виртуальном сервере 2x2600Mhz/2Gb были зафиксированы следующие показатели:

ПоказательЗначение
Максимальное количество одновременно работающих пользователей500
Дальнейшее увеличение количества пользователей не приводит к отказу системы, а к поступательному увеличению времени отклика сайта в связи с ограничениями ресурсов хостинга;
Рост утилизации аппаратных ресурсов и утечка памяти отсутствует;
Нагрузка на CPU во время длительной нагрузки не превышает 80%;
Рост среднего времени выполнения операций отсутствует;
Рост количества ошибочных операций отсутствует;
Максимальное количество пользовательских запросов в секунду (RPS), при котором поведение системы остается стабильным на данном оборудовании 140rps
Это в 1.4 раза больше, чем в исследовании roem.ru, описанном в https://www.diafan.ru/highload/.

РосАтом
Отмечено эффективное использование механизма кэширования пользовательских запросов

За время 12-ти часового тестирования стабильности зафиксировано:

  • Более 6.000.000 обращений к сайту;
  • Более 500.000 уникальных посетителей;
  • Более 92.000 пользователей зарегистрировано;
  • Отправлено более 75.000 вопросов;
  • Выполнено более 117.000 заказов в интернет-магазине.

Соответственно, в сутки DIAFAN.CMS стабильно выдерживает более 12.000.000 хитов при 1.000.000 посетителей и около 250.000 заказов в магазине. А в месяц 30млн. посетителей и 7,5млн заказов. Особое внимание нужно уделить платформе, на которой получены данные цифры и осуществленная нагрузка на неё. Это достаточно невзрачный по параметрам средний виртуальный сервер за 1300 рублей в месяц.

РосАтом
Подобные результаты сопоставимы с результатами крупнейших интернет магазинов Рунета, таких как Юлмарт, Плеер.ру и т.д., что особенно впечатляет, учитывая характеристики виртуального сервера, на котором работала DIAFAN.CMS

Важно понимать, что при использовании системы на сервере с более высокими характеристиками и тем более на выделенном физическом сервере, полученные показатели можно прогнозировать кратно выше.

Пресс-релиз о нагрузочном тестировании DIAFAN.CMS на сайте greenatom.ru.
Подробный технический отчет о тестировании.

Комментарии

Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.