IIS на Server 2012 R2 очень медленно обслуживает удаленных клиентов

Мы пытались отлаживать очень медленные скорости передачи для удаленных клиентов, попавших на наш веб-сервер (IIS на 2k12 R2).

RTT для клиента составляет около 150 мс, и мы изо всех сил пытаемся получить более 500 кбит / с из нашего соединения со скоростью 100 Мбит / с. Клиент может проверить скорость загрузки более 300 Мбит / с на локальный сервер тестирования скорости, поэтому мы не считаем, что проблема на стороне клиента, а на стороне отправки.

Wireshark показывает, что отправитель (IIS) никогда не отправляет более трех пакетов, не ожидая подтверждения. Максимальное количество байт в полете, которое мы когда-либо видели, составляет около 20 КБ. Окно получения, объявленное клиентом, составляет около 256 КБ, поэтому отправитель просто не заполняет окно.

Мы много чего пытались исправить, включая отключение всех опций выгрузки в настройках NIC, отключение эвристики и т. Д., И это сводит нас с ума, поскольку это означает, что наша серверная инфраструктура для этой цели практически непригодна.

Маршрутизатор: C2911/K9. Серверы: Dell R730 с сетевыми платами Broadcomm с гипервизорами Hyper-V 2012 R2.

Мы можем видеть скорость загрузки на локальные серверы тестирования скорости, насыщая нашу ссылку, но я верю только потому, что задержка очень низкая. Временные метки Wireshark показывают, что отправитель ожидает ACK, которых он не должен ждать.

Конечно, IIS не выполняет последовательную блокировку посылок с небольшими буферами или чем-то еще?

1 ответ

Мы разыскали проблему для этого случая. Это была неправильная настройка порта на нашем маршрутизаторе, стоящая перед нашим демаркационным коммутатором. Интерфейс маршрутизатора был установлен на 1 Гбит, но оптоволокно на 100 Мбит. Управление потоком также было отключено на порту коммутатора, поэтому маршрутизатор заполнял коммутатор, вызывая сброс пакетов.

Увеличение скорости интерфейса маршрутизатора до 100 Мбит решило проблему сброса пакетов.

Другие вопросы по тегам