Симптомы
При отправке сообщений в очередь сообщений Microsoft и TCP/IP в качестве транспортного протокола, может быть задержка около 300ms перед отправкой пакетов по сети. Это происходит потому, что стек Windows TCP/IP использует алгоритм Nagle. Алгоритм Nagle повышает производительность, обеспечивая эффективное использование пакетов TCP/IP и препятствует сеть подвергается массовой рассылке небольших пакетов TCP/IP. Хотя в некоторых случаях может быть выгодно разрешить пакеты меньшего из соображений производительности отдельных. В данной статье описывается, как отключить алгоритм Nagle TCP/IP, отправляя сообщения MSMQ.
Важно. Эта статья содержит сведения об изменении реестра. Убедитесь, что вы сделали резервную копию реестра перед внесением в него изменений. Убедитесь, что вы знаете, как восстановить реестр в случае возникновения проблем. Дополнительные сведения о том, как сделать резервное копирование, восстановление и изменение реестра, см. в следующей статье базы знаний Майкрософт:
256986 описание реестра Microsoft Windows
Решение
Примечание. Следующее исправление не требуется для MSMQ 2.0 (Windows 2000) или MSMQ 3.0 (Windows XP и Windows 2003). Тем не менее значения реестра, описанные в разделе «Дополнительная информация» этой статьи будет по-прежнему необходимо добавить.
Доступно исправление от корпорации Майкрософт, но оно предназначено только для устранения проблемы, в данной статье. Предлагаемое исправление должно применяться исключительно в системах, в которых обнаружена эта специфическая неполадка.
Чтобы устранить эту проблему, обратитесь к технической поддержки корпорации Майкрософт для получения исправления. Полный список телефонов служб поддержки продуктов корпорации Майкрософт и сведения о стоимости поддержки посетите следующий веб-узел корпорации Майкрософт:
http://support.microsoft.com/contactus/?ws=supportПримечание. В особых случаях оплата, предусмотренная за обращение в службу поддержки может быть отменена, если специалист службы технической поддержки Майкрософт определит, что обновление будет решением проблемы. Затраты на обычные услуги службы поддержки будут применяться к дополнительным вопросам и проблемам, которые не охватываются конкретным обновлением.
Английская версия данного исправления должны иметь следующие атрибуты файлов или более поздние:
Date Time Version Size File name Platform
-------------------------------------------------------------
6/22/1999 1:34 PM 1.00.0294 481,552 MQQM.DLL x86
Статус
Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".
Данная ошибка была исправлена в Windows NT 4.0 Пакет обновления 6.
Дополнительные сведения
Алгоритм Nagle TCP/IP
Алгоритм Nagle TCP/IP был разработан для устранения неполадок с небольших пакетов, называемые tinygrams, в медленных сетях. Алгоритм утверждает, что подключение по протоколу TCP/IP может иметь только один баланс небольшой сегмент, еще не были подтверждены. Определение «small» меняется, но обычно он определен как «меньше, чем размер сегмента», который в сети ethernet составляет около 1500 байт.
Отключить алгоритм Nagle вручную
Алгоритм Nagle можно отключить, изменив следующий параметр реестра и с инструкциями в разделе «Активация изменений».
-
В разделе HKEY_LOCAL_MACHINE поддерево найдите следующий раздел:
\Software\Microsoft\MSMQ\Parameters -
В меню Правка выберите команду Добавить раздел и используйте следующую информацию:
Value Name: TcpNoDelay
DWord: 1
Активация изменений
Диспетчер очереди должен быть остановлена и перезапущена после внесения изменений в реестр. Это можно сделать, остановка и запуск службы очереди сообщений Microsoft с помощью панели управления службы.
Ссылки
Примечание. Алгоритм Nagle определен в TCP/IP RFC 896.