Подробности о микросервисе:
- < li>20 запросов в секунду в контейнере.
- Масштабирование включено для этого сервиса. Каждый раз, когда средняя загрузка ЦП достигает 30 %, запускается новый контейнер.
- Обычно для этой службы работает 50 контейнеров.
- Без виртуального потока используется один контейнер каждую минуту на платформе выполняется в среднем 2,5 тыс. потоков.
- Мы используем в этой службе сервер GRPC.
- Детали запроса:
Один запрос, который находится в потоке платформы, обычно использует 6-7 параллельных потоков платформы для извлечения данных из разных источников данных (I/O). - Мы преобразовали более поздние 6–7 потоков платформы в виртуальные потоки с помощью ExecutorService.
- Мы не можем переместить запрос пользователя в виртуальный поток, поскольку сервер grcp его не поддерживает. >
Когда мы запустим работу, я вижу, что в более ранней системе было 2,5 тыс. активных веток на платформе. в среднем. Сейчас сократилось до 200. Но кроме этого никакой другой пользы не наблюдаю.
Что думал, то и буду наблюдать
[*]Увеличение пропускной способности каждого контейнера.
[*]Количество используемых контейнеров должно было сократиться, поскольку теперь меньше переключается контекст из-за менее активных потоков платформы.
< /ul>
Я не вижу никакой выгоды, кроме уменьшения количества потоков платформы.
Чего мне не хватает?
Какие еще параметры мне следует проверить, какие покажут улучшения?
Подробнее здесь: https://stackoverflow.com/questions/786 ... ual-thread
Мобильная версия