В настоящее время вы работаете в автономном режиме; ожидается повторное подключение к Интернету

Описание параметров TCP/IP, которые необходимо настроить при отключении пула подключений SQL Server

ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.

Эта статья на английском языке: 328476
Аннотация
При использовании драйвера ODBC для SQL Server, SQL Server поставщик OLE DB или управляемый поставщик System.Data.SqlClient, можно отключить с помощью соответствующих прикладного программирования (API) пула подключений. При отключении пула, нагрузки на базовую сетевую библиотеку SQL Server можно увеличить, если ваше приложение часто открывает и закрывает подключения. Данная статья содержит определенные настройки TCP/IP, которые необходимо настроить в этих условиях.
Дополнительная информация
Отключение пула может привести к основной сети драйвер SQL Server быстро открыть и закрыть новый сокет подключения к компьютеру, на котором выполняется SQL Server. Может потребоваться изменить параметры сокетов TCP/IP по умолчанию для операционной системы и компьютера, на котором выполняется SQL Server, для работы с более высоких уровней нагрузки.

Обратите внимание, что в этой статье описаны только параметры, влияющие на сетевую библиотеку SQL Server при использовании протокола TCP/IP. Отключение пула могут возникать неполадки, связанные с нагрузкой, с другими протоколами SQL Server, таких как именованные каналы, но в этой статье не рассматривается в этом разделе. Это статья предназначена для опытных пользователей. Если вы не понимаете разделы в этой статье, корпорация Майкрософт рекомендует отображается очень хорошая книга о сокетов TCP/IP.

Обратите внимание, что корпорация Майкрософт настоятельно рекомендует всегда использовать пул с драйверами SQL Server. С помощью группировки значительно повышает общую производительность на на стороне клиента и на стороне SQL Server, при использовании драйвера SQL Server. С помощью группировки также значительно уменьшает сетевой трафик на компьютере, на котором выполняется SQL Server. Например образец теста, который используется 20 000 SQL Server, подключение открывается и закрывается с активной возможностью объединения используется около 160 сетевые пакеты TCP/IP всего 23,520 байт сетевой активности. С пул отключена, один и тот же пример тест создается 225,129 сетевые пакеты TCP/IP, всего 27,209,622 байт сетевой активности.

Обратите внимание, что при появлении этих стрессовых TCP/IP сокета проблем с сетевых библиотек SQL Server может появиться одно или несколько из следующих сообщений об ошибке при попытке подключиться к компьютеру, на котором выполняется SQL Server:
SQL Server не существует или доступ запрещен
Время ожидания истекло
Общая ошибка сети
Поставщик TCP: Обычно разрешается одно использование адреса сокета (протокол/сетевой адрес/порт).
Обратите внимание, что может также получать эти сообщения ошибки при другие проблемы, возникающие в SQL Server; Например если удаленный компьютер, на котором выполняется SQL Server прекращает работу, если удаленный компьютер, на котором выполняется SQL Server не ожидает сокеты TCP/IP, если сетевое подключение к компьютеру, на котором выполняется SQL Server не работает, потому что извлечены сетевого кабеля или если возникают проблемы с разрешением DNS может появиться следующие сообщения об ошибках. Практически все, что может привести к клиенту не удастся открыть сокет TCP/IP на компьютер, на котором выполняется SQL Server может вызвать сообщения об ошибках. Однако с проблемой стрессовых сокета проблема возникает периодически нагрузку поднимается и опускается. Компьютер может работать в течение часов без ошибок, то сообщение об ошибке возникает один или два раза, а компьютер затем выполняется для нескольких дополнительных часов без ошибок. Кроме того при наличии данной проблемы общие подключения к SQL Server работает один момент, происходит сбой следующего, а затем снова работает следующий момент. Другими словами сокет стрессовых проблемы обычно появляются случайным образом, но реальные проблемы сетевого подключения с SQL Server обычно не возникают случайным образом.

Два основных проблем, связанных с нагрузкой обычно возникают при отключении пула при использовании протокола TCP/IP SQL Server: анонимный порты могут закончиться на клиентском компьютере или может превысить значение по умолчанию WinsockListenBacklog на компьютере, на котором выполняется SQL Server.

Дополнительные сведения об анонимных портов щелкните следующий номер статьи базы знаний Майкрософт:
319502 PRB: Сообщение об ошибке «WSAEADDRESSINUSE» при попытке подключиться через порт анонимные увеличить число подключений IMAP

Настройте параметры MaxUserPort и TcpTimedWaitDelay

Обратите внимание, что параметры MaxUserPort и TcpTimedWaitDelay применимы только для быстрого открытия и закрытия подключения к удаленному компьютеру, на котором работает SQL Server и клиентский компьютер не использует пул соединений. Например эти значения применяются на сервере Internet Information Services (IIS), который обслуживает большое количество входящих запросов HTTP и, открытие и закрытие подключений к удаленному компьютеру под управлением SQL Server и, с помощью протокола TCP/IP с пул отключена. Если включен пул, настройте параметры MaxUserPort и TcpTimedWaitDelay нет.

При использовании протокола TCP/IP для подключения к компьютеру, на котором выполняется SQL Server, базовую сетевую библиотеку SQL Server открывает сокет TCP/IP на компьютер, на котором выполняется SQL Server. При запуске этот сокет сетевую библиотеку SQL Server не включает параметр сокета SO_REUSEADDR TCP/IP. Дополнительные сведения о настройке сокета SO_REUSEADDR приведены в разделе "Setsockopt" Microsoft Developer Network (MSDN).

Обратите внимание, что сетевую библиотеку SQL Server специально не включить параметр сокета SO_REUSEADDR TCP/IP по соображениям безопасности. При включении SO_REUSEADDR злонамеренный пользователь может перехватить порт клиента для SQL Server и использовать учетные данные, клиент предоставляет доступ к компьютеру, на котором выполняется SQL Server. По умолчанию потому что каждый раз при открытии и закрытии сокета через сетевую библиотеку SQL Server на стороне клиента сетевую библиотеку SQL Server не включает параметр сокета SO_REUSEADDR разъем вводит в состоянии TIME_WAIT, прежде чем четыре минуты. Если быстрое открытие и закрытие подключений к SQL Server по протоколу TCP/IP с пул отключена, быстро открывающие и закрывающие сокетов TCP/IP. Другими словами для каждого подключения SQL Server имеет один сокет TCP/IP. Если быстро открыть и закрыть 4000 сокетов в менее чем за четыре минуты, достигнет максимальное значение по умолчанию для анонимного порты клиента и новые попытки подключения сокета безуспешны до существующего набора разъемов TIME_WAIT тайм-аут.

На стороне клиента может потребоваться увеличить MaxUserPort и TcpTimedWaitDelay параметры, описанные в Q319502 при наличии пула отключена. Параметры для этих значений определяется, сколько подключений SQL Server открывает и закрывает возникают на стороне клиента. Можно проверить, сколько портов клиента находятся в состоянии TIME_WAIT, прежде чем с помощью программы Netstat на клиентском компьютере. Запустите программу Netstat с флагом -n следующим и число клиентских сокетов для SQL Server IP-адрес компьютера, находящиеся в состоянии TIME_WAIT, прежде чем. В этом примере IP-адрес удаленного компьютера, на котором выполняется SQL Server, 10.10.10.20, IP-адрес клиентского компьютера, — 10.10.10.10 и три созданные подключения, а два находятся в состоянии TIME_WAIT, прежде чем:
C:\>netstat -nActive Connections  Proto  Local Address         Foreign Address       State  TCP    10.10.10.10:2000      10.10.10.20:1433      ESTABLISHED  TCP    10.10.10.10:2001      10.10.10.20:1433      ESTABLISHED  TCP    10.10.10.10:2002      10.10.10.20:1433      ESTABLISHED  TCP    10.10.10.10:2003      10.10.10.20:1433      TIME_WAIT  TCP    10.10.10.10:2004      10.10.10.20:1433      TIME_WAIT				
Если появится ближе к 4000 подключений IP-адрес конечного компьютера, на котором выполняется SQL Server, в состоянии TIME_WAIT, прежде чем запустить netstat - n , как увеличить MaxUserPort значение по умолчанию, можно уменьшить значение TcpTimedWaitDelay портов Анонимный клиент не запускается. Например вы установите для параметра MaxUserPort на 20000 и установите для параметра TcpTimedWaitDelay до 30. Более низкое значение TcpTimedWaitDelay означает, что разъемы ожидания в состоянии TIME_WAIT, прежде чем меньше времени. Высокое значение MaxUserPort означает, что можно иметь несколько сокетов в состоянии TIME_WAIT, прежде чем.

Обратите внимание, что если настроить параметр MaxUserPort или TcpTimedWaitDelay , необходимо перезапустить Windows Microsoft новой настройки вступили в силу. Параметры MaxUserPort и TcpTimedWaitDelay предназначены для любого клиентского компьютера, обращения к компьютеру, на котором выполняется SQL Server через сокеты TCP/IP. Эти параметры не имеют никакого эффекта, если они установлены на компьютере, на котором выполняется SQL Server, за исключением локальных подключений сокетов TCP/IP на локальном компьютере, на котором выполняется SQL Server.

Примечание Если настроить параметр MaxUserPort рекомендуется, зарезервировать порт 1434 для использования службой обозревателя SQL Server (sqlbrowser.exe). Дополнительные сведения о том, как это сделать, щелкните следующий номер статьи базы знаний Майкрософт:
812873 Резервирование диапазона временных портов на компьютере под управлением Windows Server 2003 или Windows 2000 Server

Настройка параметров WinsockListenBacklog

Дополнительные сведения об этом параметре реестра зависящие от SQL Server щелкните следующий номер статьи базы знаний Майкрософт:
154628 INF: Журналы SQL 17832 с несколько запросов на подключение TCP\IP
При сетевую библиотеку SQL Server ведет прослушивание на сокеты TCP/IP, сетевая библиотека SQL Server использует прослушивания Winsock API. Второй параметр для прослушивания API является невыполненной работы, разрешенный для этого сокета. Это отставание представляет максимальную длину очереди ожидающих подключений для слушателя. Если длина очереди превышает максимальную длину, сетевую библиотеку SQL Server сразу же отклоняет попытки подключения сокетов TCP/IP. Кроме того сетевую библиотеку SQL Server отправляет пакет ACK + Сброс.

По умолчанию SQL Server 2000 использует прослушивания параметр невыполненной работы по продукту 5. Это означает, что компьютер, на котором выполняется SQL Server передает значение 5 параметр незавершенных заданий для прослушивания Winsock API при прослушивания API настраивает потоки прослушивания протокола TCP/IP на компьютере, на котором выполняется SQL Server. Можно настроить различные значение передано для этого параметра реестра WinsockListenBacklog. Начиная с SQL Server 2005, сетевая библиотека передает значение SOMAXCONN как параметр невыполненной работы по продукту для прослушивания API. SOMAXCONN позволяет задать для этого параметра максимальное значение в разумных пределах поставщику Winsock. Таким образом в разделе реестра WinsockListenBacklog больше не используется и в SQL Server 2005.

Список невыполненных работ по установке работает следующим образом: предположим, что произвольный служба прослушивает входящие запросы сокет TCP/IP. Если параметр невыполненной работы равным 5, большое количество запросов подключения сокета постоянно потоковой передачи в службу нельзя будет отвечать на входящие запросы настолько быстро, насколько они бывают. На этом этапе эти входящие запросы в очередь незавершенных заданий очереди на уровне сокетов TCP/IP и службы позже можно извлекать запросы из этой очереди и обрабатывает входящий запрос на подключение сокета. После заполнения очереди на уровне сокетов TCP/IP сразу же отклоняет любые запросы дополнительных сокета, бывают по отправке пакетов ACK + Сброс обратно клиенту. Увеличить размер увеличивается отставание очереди запросов количество ожидающих подключения через сокет, на уровне сокетов TCP/IP очередей, прежде чем запросы будут отклонены.

Обратите внимание, что параметр WinsockListenBacklog для SQL Server. SQL Server пытается прочитать этот параметр реестра при первом запуске службы SQL Server. Если этот параметр отсутствует, используется значение по умолчанию 5. Если параметр реестра существует, SQL Server считывает параметр и использует предоставленное значение параметра невыполненной работы по продукту при прослушивания WinSock API вызывается как потоки прослушивания сокета TCP/IP установлены вверх внутри SQL Server.

Чтобы определить, если вы столкнулись с этой проблемы, можно запустить трассировку сетевого монитора на клиенте или компьютер, на котором работает SQL Server и ищите запросы на подключение сокета, отклоняются ACK + Сброс. Если посмотреть пакеты TCP/IP сетевого монитора, можно увидеть следующий пакет после возникновения этой проблемы:
Frame: Base frame propertiesETHERNET:  EType = Internet IP (IPv4) IP: Protocol = TCP - Transmission Control; Packet ID = 40530; Total IP Length = 40; Options = No OptionsTCP: Control Bits: .A.R.., len:    0, seq:         0-0, ack:3409265780, win:    0, src: 1433  dst: 4364   TCP: Source Port = 0x0599	  TCP: Destination Port = 0x110C  TCP: Sequence Number = 0 (0x0)  TCP: Acknowledgement Number = 3409265780 (0xCB354474)  TCP: Data Offset = 20 bytes  TCP: Flags = 0x14 : .A.R..    TCP: ..0..... = No urgent data    TCP: ...1.... = Acknowledgement field significant    TCP: ....0... = No Push function    TCP: .....1.. = Reset the connection    TCP: ......0. = No Synchronize    TCP: .......0 = Not the end of the data  TCP: Window = 0 (0x0)  TCP: Checksum = 0xF1E7  TCP: Urgent Pointer = 0 (0x0)				
Обратите внимание, что исходный порт 1433 в десятичном формате или 0x599. Это означает, что пакет поступает из обычного компьютера, на котором выполняется SQL Server, которые выполняется на порт по умолчанию 1433. Также Обратите внимание на значительное поле Подтверждение и Сброс подключения флаги установлены. Если вы знакомы с фильтрацией трассировку сетевого монитора, можно фильтровать значение флагов TCP, 0x14 шестнадцатеричное для просмотра только пакетов ACK + СБРОСА в трассировку сетевого монитора.

Обратите внимание, что можно также просмотреть подобные пакеты ACK + RESET, если компьютер, на котором выполняется SQL Server не работает вообще, или если компьютер, на котором выполняется SQL Server не прослушивает протокол TCP/IP, так, чтобы видеть пакетов ACK + СБРОСА не определенного подтверждения наличия данной проблемы. Если WinsockListenBacklog слишком мало, некоторые подключения попытки получения пакетов и некоторые соединения немедленно принять пакетов ACK + СБРОСА в одного интервала времени.

Обратите внимание, что в очень редких случаях может потребоваться настроить его даже при включенном на клиентских компьютерах. Например если на одном компьютере, на котором выполняется SQL Server идет многих клиентских компьютеров, большое количество одновременных входящих попыток подключения может возникнуть в любой конкретный момент времени даже при включенном.

ПримечаниеЕсли настроить параметр WinsockListenBacklog , нет необходимости перезагрузки для этого параметра вступило в силу. Просто остановите и перезапустите службу SQL Server для параметра вступили в силу. Параметр реестра WinsockListenBacklog предназначен только для компьютера, на котором выполняется SQL Server. Он не влияет на любом клиентском компьютере, обращения к SQL Server.

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 328476 — последний просмотр: 03/15/2015 08:39:00 — редакция: 5.0

Microsoft SQL Server 2000 Standard Edition, Microsoft ADO.NET 1.1, Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbsqlsetup kbinfo kbmt KB328476 KbMtru
Отзывы и предложения
t.createElement("meta"); m.content = guid; m.name = "ms.dqid"; document.getElementsByTagName("head")[0].appendChild(m);