Нагрузочное тестирование коробочного решения маркетплейса услуг
Для тестирования Мы используем хостинг от ihc, который Я и рекомендую использовать. Нагрузочное тестирование сервиса поиска исполнителей будем проводить исходя из того что страница должна загружаться не более одной секунды. Почему страницы? Потому что по факту в гибридных приложениях, коими и являются наши, в приложение загружается готовая страница экрана.
Возьмем самый базовый тариф, которые Я и рекомендую. Тариф SSD/1, 1 ядро, 1 Гб оперативной памяти, стоит 350 рублей/месяц.
По результатам замера предельная нагрузка составила:
- 80 страниц в секунду
- 24 000 страниц каждые 5 минут
- 7 млн. страниц в сутки
- 160 страниц в секунду
- 14 млн. страниц в сутки
Далее можно наращивать мощность по необходимости и перейти на выделенный сервер. Если не будет хватать одного выделенного сервера, то имеется возможность по разделению функций (база данных, кэширование, веб-сервер) на несколько серверов.
Скорость и количество страниц это конечно хорошо, но сколько это пользователей и заказов? Давайте считать. Рассмотрим базовое поведение пользователей. Клиент открыл список заказов, перешел в меню, первый уровень типов заданий, второй уровень, сохранил заявку, посмотрел 7-х откликнувшихся исполнителей, утвердил исполнителя, добавим еще 50% страниц и получим 10 страниц. Исполнитель открыл список заказов, конкретный заказ, откликнулся на заказ, посмотрел что его утвердили, добавим еще 50% страниц и получим 6 страниц.
Предположим 5-и минутный интервал на работу с одной заявкой, которой заинтересуется 70 исполнителей.
Базовый сервер способен обработать 24 000 страниц за 5 минут. Посчитаем нагрузку на одну заявку: 1 клиент x 10 страниц + 70 исполнителей x 6 страниц = 430 страниц, округлим до 500.
Итого возможная нагрузка 24 000 / 500 = 48 заявок каждые 5 минут или 13 824 заявок в сутки.
(1 заказчик + 70 исполнителей) x 48 заявок = 3408 активных пользователей в 5-и минутный интервал.
Важно что добавив 100 рублей в месяц на хостинге мы получаем двухкратный рост производительности.
На мой взгляд получилось очень неплохо. В запасе еще остается задача кэширования в приложении, чтобы в 10-и раз увеличить допустимые нагрузки, но мы решили отложить, чтобы упростить сопровождение и дальнейшего развитие проекта.