Подтвердить что ты не робот

Сколько запросов в минуту считается "тяжелой нагрузкой"? (Приближение)

Часто люди говорят в своих вопросах (вопросах оптимизации и производительности) и ответах о "большой нагрузке".

Я пытаюсь количественно оценить это в контексте обычного веб-приложения на типичном сервере (возьмите SO и его довольно небольшую инфраструктуру в качестве примера) в ряде запросов в минуту, предполагая, что они немедленно возвращаются (для упрощения и принимать данные из базы данных и т.д. из уравнения).

Я ищу номинальное число/диапазон, а не "где CPU неактивен" или аналогичный. Грубое приближение было бы большим (например, > 5000/мин). Спасибо!

4b9b3361

Ответ 1

Я бы подумал, что правильный ответ на этот вопрос, учитывая, что вы не хотите, чтобы измерение загрузки оборудования (загрузка процессора, памяти, ввода-вывода) заключалось в том, что большая нагрузка - это количество запросов на единицу времени в требуемом максимальное количество запросов за единицу времени.

Требуемое максимальное количество запросов - это то, что было определено с клиентом или с кем отвечают за общую архитектуру.

Скажите, что X - это требуемая максимальная нагрузка для приложения. Я думаю, что что-то вроде этого приблизит ответ:

0 < Light Load < X/2 < Regular Load < 2X/3 < High Load < X <= Heavy Load

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

Хотя 200 запросов в секунду - это загрузка, которая будет задерживать работу небольших веб-серверов (~ 12000 в минуту).

Ответ 2

Тяжелая нагрузка - это то, что ваша система не может обрабатывать.; -)

Ответ 3

Это не простой вопрос, на который можно ответить с помощью простого числа запросов/минут.

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

Таким образом, это зависит от вашего сервера и того, что он может обработать. Это также зависит от вашей точки зрения. Например, старый 386 может обрабатывать только жалкие 50 запросов/минуту. Я бы назвал это легкой нагрузкой. Но сервер высокой спецификации может обрабатывать 60000 запросов в минуту. Это просто догадка. Я понятия не имею, может ли Apache сделать это. Наше программное обеспечение для телекоммуникаций, безусловно, может.

Я думаю, что лучше всего ответить на это с точки зрения сервера. Я бы сказал, что очень большая нагрузка - это когда вы находитесь в пределах 10% от того, что ваш сервер способен обрабатывать в течение нескольких минут или десятков минут. Тяжелый груз в пределах 15%.

Ответ 4

Несколько сотен запросов в секунду.

Количество открытых подключений для большинства серверов обычно составляет 256 или меньше, ergo 256 запросов в секунду. Вы можете нажать его до 2000-5000 для запросов ping или 500-1000 для облегченных запросов. Сделать его еще выше очень сложно и требует изменений в сети, аппаратном обеспечении, ОС, серверном приложении и пользовательском приложении (см. проблема 10k).

Скорость поиска + латентность для жестких дисков составляет около 1-10 мс, для SSD - 0.1-1 ms. Итак, это 100-100 000 IOPS. Возьмем 100 000 как верхнее значение (ССР последующая запись)

Обычно соединение остается открытым не менее 1 x latency value ms. Задержка с клиента на сервер редко меньше 50-100 ms, поэтому только 100 000/50= 2000 IOPS может создавать новые подключения.

Таким образом, 2000 запрос ping в секунду от разных клиентов является базовым верхним пределом для обычного сервера. Он может быть улучшен за счет использования RAM-диска или добавления большего количества SSD-дисков для увеличения количества IOPS, запросов на маршрутизацию для уменьшения пинга, изменения/модификации ОС для уменьшения издержек ядра и т.д. Обычно он также выше из-за многих запросов, поступающих от одного и того же клиента (соединения) и ограниченное количество клиентов. В хороших условиях он может подняться до сотен тысяч

С другой стороны, более высокий пинг, время выполнения приложения, неисправность ОС и аппаратного обеспечения могут легко уменьшить базовое значение до нескольких сотен запросов в секунду. Кроме того, типичные веб-серверы и приложения обычно не очень хорошо подходят для высокоуровневой оптимизации, поэтому предложение Vinko Vrsalovic о 200 довольно реалистично.

Ответ 5

Трудно ответить, потому что загрузка - это не просто вопрос запросов в единицу времени. Это зависит от того, что делают эти запросы и как они реализованы.

Например, больше чтений, чем записи, может означать более легкую загрузку.

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

Одной из крайностей могут быть системы торговли акциями, которые обрабатывают миллиарды транзакций за каждый торговый день. Посмотрите на типичный объем на NYSE или NASDAQ и используйте это, чтобы оценить высокое значение в минуту.

Скажем, 2B транзакции в торговый день являются репрезентативными для NASDAQ. Рынки открываются в 9 утра и закрываются на 4 часа, так что 7 часов * 3600 секунд/час = 25200 секунд. Это даст в среднем 2B транзакций /25200 секунд = 79 365 транзакций в секунду - очень высокая загрузка. Очевидно, что они используют множество серверов, поэтому вам понадобится этот номер, чтобы выяснить, какой должна быть загрузка на сервер.

Если SO можно считать хорошим эталоном, вы можете задать его объем на мета.

Ответ 6

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