Size: a a a

QA — Load & Performance

2021 August 24

VG

Viktor Ganeles in QA — Load & Performance
Ну, грузите с такого количества машин, как на проде будет

А ещё лучше - подавайте нагрузку не напрямую в бд, а на ваши сервера приложений
источник

SA

Sergey Aseev in QA — Load & Performance
Так а где взять столько машин? Это надо в облака? Я не сталкивался с таким никогда = (
источник

VG

Viktor Ganeles in QA — Load & Performance
С высокой долей вероятности проблемы найдутся не только в бд, так как 10к запросов в секунду это не так уж мало
источник

SA

Sergey Aseev in QA — Load & Performance
Это ж получается как бы 500к браузеров пользователей ломятся в систему, соответсвенно 500к машин - это же жесть какая-то
источник

SA

Sergey Aseev in QA — Load & Performance
Все так, но это шаг 2. Сейчас нужно одобрить так желаемый определенными людьми ms sql server
источник

VG

Viktor Ganeles in QA — Load & Performance
Погодите
Браузеры ведь не в mssql ломятся?

Браузеры ломятся в сервера приложений
Сервера приложений ломятся в mssql
источник

SA

Sergey Aseev in QA — Load & Performance
Да
источник

VG

Viktor Ganeles in QA — Load & Performance
Серверов приложений, например, штук 5
Вот с 5 тачек и подавайте нагрузку
источник

SA

Sergey Aseev in QA — Load & Performance
Там будет столько, сколько надо. Кубер в Azure облаке
источник

SA

Sergey Aseev in QA — Load & Performance
Но окей, нужно понять, сколько надо и подать, понял мысль
источник

VG

Viktor Ganeles in QA — Load & Performance
Теперь про сессии:

300к одновременных сессий - это сессии к бд или от браузеров к серверам приложений?
источник

SA

Sergey Aseev in QA — Load & Performance
Увы, но это просто чиселко от бизнеса. Нефункциональное требование - "нужно чтобы 500к пользователей могли пользоваться приложением"
источник

SA

Sergey Aseev in QA — Load & Performance
Я просто боюсь, что даже если поставить 100500 серверов, sql server может сам по себе не пропустить на нужном запросе такое кол-во. И нужен будет как минимум кластер из ms sql servers. Серверов приложений можно наподниматься много, там стейта нет, они простенькие и тоненькие. Вернее стейт как раз в этой базе. Нужно уметь несколько запросов всего слать.
источник

SA

Sergey Aseev in QA — Load & Performance
Пока что на основе того, что вы советуете, план попробовать запитать sql server с X тачек. Взять, скажем, 20 и посмотреть...
источник

VG

Viktor Ganeles in QA — Load & Performance
Во, это лучше.

Значит нужно поговорить с бизнесом и с разрабами:
1) 500к пользователей - сколько бизнес-операций делают, за, скажем, час?
(Например, 3: Вход в систему, поиск данных, обработка данных)

2) говорите с разрабами - сколько запросов накидывают приложения если клиент сделал эти операции (для простоты пусть по 5 sql-запросов на каждый бизнес-кейс)

Значит 500к (пользователей) * 3 (операции в час с каждого пользака) * 5 (sql-запросов с операции) / 3600 (секунд в час) = 2083 запроса должен выдавать ваш sql-сервер в секунду

Вот такую нагрузку и подавайте
источник

VG

Viktor Ganeles in QA — Load & Performance
Прошлое сообщение - ответ вот на это:
«500к пользователей могли пользоваться приложением»
источник

VG

Viktor Ganeles in QA — Load & Performance
Но, конечно, уточню: на самом деле так тестировать неверно.

Потому что сервер может выдержать 100500 запросов «select top 1 from table» но приложение завалится, не дождавшись ответа на  100 запросов типа
Select … from … join … where … and … and … and a in (select * from table2) order by …
источник

SA

Sergey Aseev in QA — Load & Performance
Я понимаю сценарий уже. Примерно в одно время огромная толпа (как настаивают 300к) идет по ссылке в систему. Она логинется, и делает в среднем запросов 5. Но не за час, а минут за 10 максимум. Поэтому я и иду от простого. Сначала бы понять, а сколько sql server будет переваривать просто лишь по одному запросу от всей этой толпы
источник

SA

Sergey Aseev in QA — Load & Performance
Да, я запускаюсь на реальном запросе по FK, сложных джоинов нету, вернее даже вообще нету
источник

VG

Viktor Ganeles in QA — Load & Performance
Тогда лучше :)
источник