Почему я получаю больше времени ожидания при использовании .NET Ping, чем WebResponse? - PullRequest
0 голосов
/ 10 ноября 2018

Сеть, как показано ниже.

  1. Сервер1: Windows Server 2012 R2 с IIS

  2. Сервер2: Windows Server 2012 R2 с IIS

  3. Балансировщик нагрузки, соединяющийся с сервером1 и сервером2

  4. Клиенты: 2000 компьютеров с Windows 7.

В моем приложении на клиенте есть метод онлайн / автономной проверки, который запускается каждую минуту.

Сначала мое приложение на клиенте проверяет онлайн / офлайн по запросу веб-страницы .NET WebResponse Class с тайм-аутом 30 секунд. IP-адрес назначения является балансировщиком нагрузки. В промежутке между рабочим временем клиента (9: 00 ~ 21: 00) я получал только тайм-аут в 2-10 раз при запуске проверки онлайн / офлайн.

Затем, я думаю, что трафик WebResponse больше, чем Ping, поэтому я изменил метод, чтобы использовать System.Net.NetworkInformation.Ping вместо WebResponse. Время ожидания также составляет 30 секунд, и IP-адрес назначения также является балансировщиком нагрузки. Но проблема в том, что между рабочим временем клиента (9: 00 ~ 21: 00) я получал результат тайм-аута в 50-100 раз при запуске проверки онлайн / офлайн.

Я не могу понять, почему Ping получает больше времени ожидания, чем WebResponse? Лучше использовать WebResponse для проверки онлайн / офлайн, чем Ping?

1 Ответ

0 голосов
/ 11 ноября 2018

Лучше использовать WebResponse для проверки онлайн / офлайн, чем Ping?

Если вы пытаетесь оценить, отвечает ли веб-приложение, вам нужно использовать WebResponse.Единственное, что вам скажет инструмент Ping, - отвечает ли интерфейс балансировщика нагрузки.

Что касается ваших нерегулярных результатов, возможно, вы теряете тот же объем трафика, но из-за IP-адреса WebResponseи ping - это ICMP, который WebResponse компенсирует за плохие соединения.

Вы упоминаете, что у вас 2000 клиентов, и эта проблема возникает в рабочее время.Возможно ли, что эта проверка сама по себе вызывает ваши проблемы?Если все ваши клиенты начинают отправлять эту проверку, когда все ее используют, возможно, вы вызываете ненужную загрузку приложения?

...