Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

Загальні відомості

Під час використання, SQL Server ODBC драйвер, постачальник 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, під час використання драйверів SQL Server. За допомогою, групування також значно зменшує мережний трафік на комп'ютері під керуванням сервера SQL Server. Наприклад, використовується SQL Server, 20 000 підключення, відкривається та закривається з об'єднання з підтримкою зразка використовується близько 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 зазвичай не відбувається спорадично.

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


Щоб отримати додаткові відомості про анонімний портів клацніть номер статті в базі знань Microsoft Knowledge Base:

319502 PRB: "WSAEADDRESSINUSE" повідомлення про помилку під час спроби підключитися через анонімні-порт, після того, як ви збільшите обмеження кількості підключень IMAP

Налаштування MaxUserPort та TcpTimedWaitDelay

Зверніть увагу, що параметри MaxUserPort та TcpTimedWaitDelay застосовується лише на клієнтському комп'ютері, що швидке відкриття та закриття підключення до віддаленого комп'ютера під керуванням сервера SQL Server і не використовує підключень. Наприклад, ці параметри застосовуються на сервері інформаційних служб Інтернету (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 не дозволяє SO_REUSEADDR сокет варіант кожного разу, коли ви відкриваєте і закрити сокет через мережу-бібліотеку SQL Server на боці клієнта, сокет входить TIME_WAIT стан чотирьох хвилин. Якщо ви швидко відкриття та закриття підключення до SQL Server через TCP/IP, з об'єднання, вимкнуто, можна швидко відкриття та закриття протоколу TCP/IP розетки. Інакше кажучи, кожен підключення до SQL Server, має один сокет, TCP/IP. Якщо швидко відкрити і закрити 4000 розетки менше, ніж за 4 хвилин, з'явиться параметр за промовчанням максимальний для анонімного-порти клієнта, і нові сокет-спроб підключення, не до наявного набору TIME_WAIT сокети час очікування відповіді.

На стороні клієнта можливо, доведеться збільшити MaxUserPort та TcpTimedWaitDelay параметри, які розглядаються в Q319502, коли групування, вимкнуто. Визначають настройки для цих значень, скільки підключення до SQL Server відкривається і закривається виникають на стороні клієнта. Можна переглянути, скільки клієнта знаходяться у стані TIME_WAIT за допомогою Netstat. exe на клієнтському комп'ютері. Запустити засіб Netstat -n -прапора, таким чином і підрахунок числа розетки клієнта до SQL Server IP-адреси, які перебувають у стані TIME_WAIT. У цьому прикладі IP-адресу віддаленого комп'ютера під керуванням сервера SQL Server, є 10.10.10.20, IP-адресу комп'ютера клієнта: 10.10.10.10 та три встановлено, підключення та два підключення, які перебувають у стані TIME_WAIT:

C:\>netstat -n
Active 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

Якщо запустити netstat -n і ви бачите, що до цільового комп'ютера під керуванням сервера SQL Server, що перебувають у стані TIME_WAIT 4000 підключення IP-адресу, можна як збільшити MaxUserPort за замовчуванням та зменшити TcpTimedWaitDelay настройку так, щоб не запускати з анонімним-порти клієнта. Наприклад, можна встановити параметр MaxUserPort 20000 та встановлено параметр TcpTimedWaitDelay 30. Оптимізацію TcpTimedWaitDelay означає, що розетки очікування у стані TIME_WAIT для менше часу. Параметр вище MaxUserPort означає, що, ви можете мати додаткові розетки TIME_WAIT стану.

Зверніть увагу, що якщо установити параметр MaxUserPort або TcpTimedWaitDelay , перезавантажте Microsoft Windows, щоб нові настройки набрали сили. Параметри MaxUserPort і TcpTimedWaitDelay є будь-який комп'ютер клієнта говорити на комп'ютері під керуванням SQL Server через TCP/IP розетки. Ці параметри не мають будь-який ефект, якщо встановлено на комп'ютері під керуванням сервера SQL Server, якщо не роблять локального підключення сокет TCP/IP на локальному комп'ютері, з SQL Server.

Примітка. Якщо установити параметр MaxUserPort , корпорація Майкрософт рекомендує, що ви зарезервувати порт 1434 для використання, служби SQL Server браузера (sqlbrowser.exe). Щоб отримати додаткові відомості про те, як це зробити, клацніть номер статті в базі знань Microsoft Knowledge Base:

812873 як зарезервувати діапазон використання тимчасових портів, на комп'ютері під керуванням ОС Windows Server 2003 або Windows 2000 Server

Змініть настройки WinsockListenBacklog

Щоб отримати додаткові відомості про цей SQL Server певного розділу реєстру клацніть номер статті в базі знань Microsoft Knowledge Base:

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 Options
TCP: 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)

Зверніть увагу, що порт-джерело 0x599 або 1433, у десятковому розмірі. Це означає, що пакет, що відбудеться з на комп'ютері під керуванням сервера SQL Server і працює на порту 1433 за промовчанням. Також зверніть увагу, що підтвердження поле-значний і позначки -скидання з'єднання буде встановлено. Якщо ви знайомі з фільтрації трасування мережний монітор, добору TCP позначки значення 0x14 шістнадцяткове бачити тільки ACK + скидання пакети мережний монітор трасування.

Зверніть увагу, що також можна переглянути подібні ACK + скидання, пакети, якщо на комп'ютері під керуванням сервера SQL Server не працює на всіх, або якщо на комп'ютері, на якому запущено SQL Server не прослуховує протоколу TCP/IP протоколу, таким чином, відображається ACK + скидання пакетів не певний підтвердження дії, які мають цю проблему. Якщо занадто низька, WinsockListenBacklog , деякі підключення, спроби отримати. прийняти пакетів і підключення до деяких одразу отримуєте ACK + скидання пакетів у той же період часу.

Зверніть увагу, що у випадках, дуже рідко, можливо, доведеться змінити цей параметр, навіть якщо групування на клієнтських комп'ютерах. Наприклад, якщо на одному комп'ютері, з SQL Server йде багато клієнтськими комп'ютерами, велику кількість одночасних вхідних-спроби підключення може виникнути в будь-який час, зокрема навіть якщо групування.

Примітка Якщо установити параметр WinsockListenBacklog , не потрібно перезавантажити Windows для настройки набрали сили. Тільки зупинити і перезапустіть службу SQL Server, значення набрали сили. Параметр реєстру в WinsockListenBacklog , є лише на комп'ютері, на якому запущено SQL Server. Не містить будь-який вплив на будь-який комп'ютер клієнта говорити SQL Server.

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×