время вызова grpc уменьшает накладные расходы - PullRequest
0 голосов
/ 13 декабря 2018

Я использую gRPC (неблокирующую заглушку) в Java-приложении, и время ответа между двумя вызовами функций составляет около 5-8 мс.Я хотел бы уменьшить это.Что ты предлагаешь?Возможно ли это вообще?

1 Ответ

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

gRPC. Затраты Java обычно измеряются в мкс (суб-мс).Если вы видите задержку в миллисекундах, общие ожидания относительно того, почему:

  1. Задержка обслуживания составляет миллисекунды.На сервере измерьте, сколько времени требуется службе для ответа.Многие сервисы обрабатывают запросы за миллисекунды.

  2. Задержка в сети составляет миллисекунды.Запустите ping с одного хоста на другой, чтобы получить более низкую оценку производительности связи.(netperf tcp_rr - еще лучший вариант, если у вас есть такой интерес.)

  3. В тесте не было прогрева JVM.Самый первый RPC будет очень и очень медленным, поскольку происходит загрузка классов.После этого JVM будет использовать интерпретированный режим некоторое время, прежде чем JIT начнет компилировать код.Затем JIT будет постепенно оптимизировать код.Поэтому убедитесь, что период прогрева 30+ секунд устойчивых RPC.

  4. Channel с не используются повторно.Поиск DNS, создание сетевых подключений и выполнение квитирования TLS увеличивают задержки.Но если вы повторно используете Channel s с несколькими RPC, то более поздние RPC не должны будут оплачивать эти задержки.

...