Я читаю документы о GAE task queues, и я не знаю о взаимоотношениях (если есть) между rate
и max_concurrent_requests
. Указывает ли rate
один запрос, чтобы, например, rate = 20/s, а max_concurrent_requests = 10 эффективно означает максимум 200 запросов/с?GAE: отношение между скоростью очереди и max_concurrent_requests
4
A
ответ
14
Есть 3 параметра:
bucket size
~ максимальная скорость пакетаrate
~ нормальная скорость обработкиmax concurrent requests
~ дополнительное ограничение параллельности
Когда задача начинает выполнение, его смотрит на ведро, чтобы проверить, есть ли токен или слот.
- Если да, количество токенов уменьшается с одним, и задача начинает выполняться, если уже выполняется менее
max concurrent requests
. - Если нет, задача должна будет дождаться появления нового токена/слота со скоростью
rate
.
Если у вас большой ковш, он может заполнить, когда трафик низкий, и, например, с размером ковша 20 и внезапным пиком спроса, вы можете запустить 20 задач, потому что все они могут получить токен. Затем ведро пустое, и задачи будут обрабатываться со скоростью скорости.
Max concurrent requests
может дополнительно ограничить скорость передачи, так как длинные задачи замедляют всю обработку. Без max concurrent requests
только скорость bucket size
и rate
определяют скорость обработки, а не продолжительность ваших задач.
Смежные вопросы
- 1. GAE толчок очередь с max_concurrent_requests
- 2. JavaScript: какова связь между скоростью процессора и скоростью кода?
- 3. Целевые очереди GAE с ETA и большое количество задач
- 4. Задачи очереди задач GAE блокируются
- 5. Azure Storage, выберите между безопасностью и скоростью
- 6. Измерьте компромисс между точностью и скоростью алгоритмов
- 7. Отношение между набором и графом
- 8. Отношение между машинописью и ES6
- 9. Дальше в будущей очереди задач GAE ETA
- 10. Отношение между классами
- 11. Отношение между noderefernce полями
- 12. OpenOffice Отношение между таблицами
- 13. Отношение между разделенными таблицами
- 14. отношение mongoose между моделями
- 15. Laravel: отношение между моделями
- 16. отношение между 2 массивами
- 17. Задачи и выполнение GAE
- 18. отношение между монадическим фильтром и сгибанием
- 19. Отношение между предварительной обработкой и переводом
- 20. AChartEngine: отношение между mBarSpacing и mBarWidth
- 21. ManyToMany отношение между новостями и пользователями
- 22. Отношение CQRS между командами домена и событиями
- 23. Отношение размера строки между java и C++
- 24. numpy.correlate: Отношение между полным и допустимым
- 25. Отношение между классами А и классом В
- 26. отношение между процессом init и bash
- 27. агрегация отношение между клиентом и лицом/организацией
- 28. отношение между собственными значениями и основным компонентом
- 29. Отношение между входным и выходным шифрованием?
- 30. Отношение между JDBC сессиями и Oracle обрабатывает
Спасибо, это было полезно! Значит ли это, что «максимальные одновременные запросы» должны быть меньше, чем «размер ведра», чтобы иметь какой-либо эффект? Имеет ли значение 'max_concurrent_requests = 20' смысл по умолчанию' bucket_size = 5'? – gsakkis
Да, это имеет смысл. Вы разразитесь до 5 задач одновременно, если и только если закончились предыдущие 20 задач. В противном случае ваше ведро будет иметь токены, но следующие задачи не начнутся, пока некоторые из оставшихся текущих задач не будут завершены. – koma
Привет, koma. Просто уточните, когда вы говорите «если и только если закончились предыдущие 20 заданий», то это противоречит «если есть уже более макс одновременных запросов, уже выполняющихся». Это скорее «если и только если есть менее 20 запущенных задач»? В противном случае, если только одна задача заняла «слишком много» времени, чтобы закончить, она заблокирует всю очередь. Что-то я сомневаюсь, основываясь на моем опыте. – chaiyachaiya