Сколько запросов не будет выполнено, если ошибка возникнет в одном процессе одного хоста?

Сколько запросов не будет выполнено, если ошибка возникнет в одном процессе одного хоста?

Контекст:

У меня есть кластер из H хостов, обслуживающих API, где каждый хост обслуживает API, используя P (постоянное) количество (Python, но не имеет значения) процессов (асинхронно, но в остальном также не имеет значения).

У меня есть доступ к следующей информации (в виде графиков):

  • усредненное (в секунду) количество запросов получателя по всему кластеру, R(t)
  • Средняя задержка (время, необходимое для обработки запроса) L= L(t), которая также меняется со временем.
    • среднее значение за секунды и по всем процессам/хостам
  • Количество хостов H(t), которое со временем меняется из-за автоматического масштабирования.

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

  • Частота ошибок (например, количество сбоев в день на хост) известна и постоянна, например E.

Проблема: Я хочу вычислить (ожидаемое?) количество неудачных запросов в результате сбоя.

Предположения:

  • запросы равномерно распределены по хостам и процессам.
  • неудавшийся процесс восстанавливается «немедленно»

Некоторые мысли:

  • В любую секунду числоновыйзапросы должны быть R(t) / [P*H(t)].
  • Это не учитывает "запущенные" запросы, которые еще не завершены. Я думаю, что я хочу как-то связать это с L(t)...
  • Обратное число новых запросов в секунду, [P*H(t)] / R(t), должно быть меньше L(t), так как в противном случае это означало бы, что выполнение запроса занимало бы больше времени, чем получение нового, что в конечном итоге приводило бы к перегрузке серверов (чего не происходит!)

Связанный контент