В моем конкретном случае я работаю с веб-сайтами, однако вопрос более общий, чем этот. Я ищу (думаю) что-то вроде формулы.
Ситуация такова, что я уже провел нагрузочное тестирование, чтобы определить предел работы сервера. Я знаю, что большее, чем, скажем, 100 ударов в секунду приводит к перегрузке сервера и недопустимой работе. Это число тривиально экстраполировать на 360 000 обращений в час (100 × 60 × 60).
Проблема возникает, когда я получаю вопросы от маркетологов типа: «Сколько посетителей мы сможем обработать для нашей следующей рекламной кампании?» Они работают с числами типа: «2 миллиона человек увидят нашу рекламу. Основываясь на прошлом опыте, мы знаем, что около 10% этих людей перейдут на сайт, поэтому 200 000 посетителей перейдут на сайт. Сможем ли мы справиться с этим? Если бы эти 200 000 посетителей были равномерно распределены в течение всего часа, цифры выше говорят нам, что сервер справился бы с нагрузкой нормально. Но что, если бы посетители по-прежнему были распределены в течение часа, за исключением того, что большинство посетителей попадали на сайт в первые 15 минут? Сайт будет перегружен (100 × 60 × 15 <200 000 ∕ 2).
Ответ явно зависит от распределения просмотров. К сожалению, у меня нет этих прошлых данных. Итак, каковы типичные распределения для веб-сайтов на обоих концах спектра (сайты с равномерным распределением и сайты с высокой концентрацией распределений)? Если вы не знаете, ничего страшного, я могу задать эту часть еще раз в отдельном вопросе. Важнее:
Предполагая, что я знаю, каково распределение, как мне применить эти знания для определения максимального количества посетителей в заданном интервале на основе максимального количества обращений в секунду?
До сих пор я предполагал, что один посетитель означает одно попадание. В действительности каждый посетитель совершит одно или несколько заходов на сайт. Чтобы принять это во внимание, могу ли я просто взять среднее количество посещений / посетителя, а затем разделить соответствующим образом? Или мне нужно учитывать распределение просмотров страниц на посетителя (например, 90% посетителей попадают на одну страницу, 5% - на две страницы, а 5% - более чем на две страницы)?
Наконец, все это связано с большим количеством догадок. Это моделирование (теоретически) даст нам максимальное число, но насколько вы отказываетесь от этого числа, прежде чем передать его? Что вы думаете о выражении неопределенности результата?
Речь идет не о догадках, а в основном о статистике. Вот почему крайне сложно сделать прогноз для подобных ситуаций без каких-либо данных. Распределение попаданий будет следовать некоторой кривой - чтобы узнать, сможет ли ваша система справиться с нагрузкой, вам нужно будет посмотреть на вершина горы кривой и сравните это с вашими пределами, также принимая во внимание, что вам понадобится некоторая «зона безопасности» на случай, если оценки окажутся неверными. «Инженерный» подход к определению зоны безопасности состоит в том, чтобы принять максимальное количество и перерасход как минимум в два раза. Коэффициент переизбытка необходимо скорректировать, если отказ системы приведет к очень высоким затратам или более именно, если стоимость чрезмерного проектирования незначительна по сравнению со стоимостью отказа.
Количество просмотров на посетителя зависит от дизайна вашего сайта или приложения, поэтому теоретически его можно рассчитать. Но статистический подход и здесь будет намного проще, если сайт имеет значительную сложность.