Сколько запросов в минуту считается «тяжелой нагрузкой»? (Приближение) - PullRequest
29 голосов
/ 24 августа 2009

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

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

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

Ответы [ 6 ]

39 голосов
/ 24 августа 2009

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

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

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

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

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

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

6 голосов
/ 24 августа 2009

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

5 голосов
/ 05 февраля 2016

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

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

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

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

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

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

4 голосов
/ 24 августа 2009

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

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

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

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

2 голосов
/ 24 августа 2009

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

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

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

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

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

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

0 голосов
/ 19 декабря 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...