Сравнительный анализ использования ЦП: синхронные и асинхронные клиенты HTTP - PullRequest
0 голосов
/ 27 февраля 2019

Я выполнил несколько тестов в своей системе, и одна вещь, на которую я обратил более пристальное внимание, - это поведение моей программы, которая со временем выполняет ряд HTTP-вызовов.Чтобы быть более конкретным, у меня есть микросервис, который выдает синхронные HTTP-вызовы по запросу.Я решил провести стресс-тестирование, вставив некоторую нагрузку в мою систему, что, в свою очередь, заставит микросервис выполнять один синхронный HTTP-вызов за другим.(Для каждого ответа требуется около 1 с, чтобы вернуть ответ, т. Е. Заблокировано на 1 с.).

Оказывается, что загрузка ЦП доминирует в этой части программы.Если другие части занимают 5-10% загрузки ЦП с течением времени, эта часть занимает до 50% постоянной во времени, что является огромной разницей и очевидным узким местом.проверить с помощью асинхронного HTTP-клиента, могу ли я увидеть такое большое потребление ресурсов процессора при моих HTTP-вызовах?Поскольку для вызова HTTP по-прежнему требуются 1 с, чтобы вернуть ответ, не будет ли он сильно нагружать ЦП для опроса, чтобы проверить, возвращен ли ответ?Или он потребует гораздо меньше нагрузки от процессора, так как один поток может обрабатывать больше работы?Как будет выглядеть загрузка процессора с течением времени?

...