Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Скорость обмена по сети, возможно ли улучшить ситуацию?  [new]
nemo_di
Member

Откуда:
Сообщений: 6
Подскажите пожалуйста, есть ли что-то из толковых рекомендованных статей по сетевой производительности и настройке/тюнингу MSSQL?

Есть странная ситуация.
Два сервера:
1. Win 2016 MSSQL 2017
CPU: Intel Xeon E5-1650v3
RAM: 64GB DDR4 ECC 2133 MHz
Disks: 2x4TB SATA
2. Win 2012R2 MSSQL 2017
CPU: Intel Xeon-D 1541
RAM: 128GB DDR4 ECC 2133 MHz
Disks: 2x2TB SATA
На каждом сервере по два сетевых порта, первые смотрят в мир, вторые 1Gbit VLAN(между серверами).

Проверяю ФТП(скачиваю со второго на первый), скорость под гигабит.
Запускаю из студии скрипт, который вытягивает большую таблицу со второго на первый, скорость порядка 31 Mbps и это уже с увеличенным до 32767 Network Packet Size(дало прирост с 5 до 31 Mbps).
https://snag.gy/Sg1zm5.jpg

Хотелось бы скорость передачи поболее.
На аналогичной паре серверов получаем порядка 71мбита хотя бы, да и то, на мой взгляд это очень далеко от идеала.

Пример скрипта тягающего большие объемы: https://pastebin.com/QbRHFSqs

Я уже и Jumbo packet в настройках сетевых на обоих серверах активировал с установкой значения в 9014.
Так скорость вообще до 10-15Мбит упала. Подозреваю что у хостера этот момент весьма криво работает.

Есть ощущение, что какие-то параметры сетевой или мсскл требуют правки, но не хватает понимания что именно смотреть.

Попробовал промониторить sys.dm_os_wait_stats: https://pastebin.com/XaDP0usz

Куда копать?
Спасибо.
14 дек 18, 11:35    [21763821]     Ответить | Цитировать Сообщить модератору
 Re: Скорость обмена по сети, возможно ли улучшить ситуацию?  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
nemo_di,

а какие ожидания у самого зпроса возникают?
а то может увас винт быстрее вставлять не умеет.
14 дек 18, 11:41    [21763832]     Ответить | Цитировать Сообщить модератору
 Re: Скорость обмена по сети, возможно ли улучшить ситуацию?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30800
nemo_di
Запускаю из студии скрипт, который вытягивает большую таблицу со второго на первый, скорость порядка 31 Mbps
А с первого на первый и со второго на второй пробовали? Что бы понять скорость без участия сетевого обмена.
14 дек 18, 11:50    [21763847]     Ответить | Цитировать Сообщить модератору
 Re: Скорость обмена по сети, возможно ли улучшить ситуацию?  [new]
nemo_di
Member

Откуда:
Сообщений: 6
WarAnt, я не настоящий сварщик, но если не ошибаюсь, по последней ссылке как раз и есть ожидания в разрезе времени и процентовки.

Используются диски HGST HUS726040ALA610 : https://snag.gy/fwcpys.jpg
Datasheet for HGST HUS726040ALA610 show that: Sustained transfer rate (MB/s) - 202, (MiB/s) - 192.
Source: https://documents.westerndigital.com/content/dam/doc-library/en_us/assets/public/western-digital/product/data-center-drives/ultrastar-sata-series/data-sheet-ultrastar-7k6000.pdf
Даже без рейда он в пике должен утилизировать 1,5Гбита. Мне кажется, что 31Мбит/с для дисков был наверное в 1998-2000гг.
14 дек 18, 11:55    [21763851]     Ответить | Цитировать Сообщить модератору
 Re: Скорость обмена по сети, возможно ли улучшить ситуацию?  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
nemo_di
WarAnt, я не настоящий сварщик, но если не ошибаюсь, по последней ссылке как раз и есть ожидания в разрезе времени и процентовки.


ожидания сервера, а не ожидания конкретного запроса в момент его выполнения, то что вы по ссылке нарисовали это 36.6 в больнице.
14 дек 18, 12:06    [21763870]     Ответить | Цитировать Сообщить модератору
 Re: Скорость обмена по сети, возможно ли улучшить ситуацию?  [new]
nemo_di
Member

Откуда:
Сообщений: 6
WarAnt, подскажите пожалуйста, где и как это можно посмотреть.
14 дек 18, 12:28    [21763897]     Ответить | Цитировать Сообщить модератору
 Re: Скорость обмена по сети, возможно ли улучшить ситуацию?  [new]
invm
Member

Откуда: Москва
Сообщений: 9123
nemo_di,

Как раз значения кумулятивных ожиданий на уровне сервера и есть "средняя по больнице".
У вас 2017 сервер, значит в актуальном плане выполнения есть статистика ожиданий. Вот ее и смотрите.
14 дек 18, 12:54    [21763945]     Ответить | Цитировать Сообщить модератору
 Re: Скорость обмена по сети, возможно ли улучшить ситуацию?  [new]
uaggster
Member

Откуда:
Сообщений: 767
nemo_di, Дело, скорее всего, не в сети, а в дисковой подсистеме и т.д. и т.п.
Но, всё же иногда, очень редко, дело бывает в процессорозависимом драйвере сетевой карты (только крайний раз я такое видел лет 10 назад).
MSSQLSERVER может обкрадывать драйвер сетевой карты в смысле процессора.
Решается это ручным закреплением ядер процессора CPU affinity mask и affinity I/O mask (https://www.sqlpassion.at/archive/2017/10/02/setting-a-processor-affinity-in-sql-server-the-unwanted-side-effects/) и закреплением драйвера сетевой карты за неиспользуемыми ядрами средствами Windows.
Кстати, также видел аналогичное обкрадывание рэйд-контроллера, которое решается также.

Только всё это до исторического материализма было, и я буду удивлен, если вам удастся поймать такое. Сейчас и ядер - десятки, и загрузить их мыслимыми способами почти невозможно :-)
14 дек 18, 13:06    [21763962]     Ответить | Цитировать Сообщить модератору
 Re: Скорость обмена по сети, возможно ли улучшить ситуацию?  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
nemo_di
Два сервера:
1. Win 2016 MSSQL 2017

2. Win 2012R2 MSSQL 2017

На каждом сервере по два сетевых порта, первые смотрят в мир, вторые 1Gbit VLAN(между серверами).

скорость порядка 31 Mbps и это уже с увеличенным до 32767 Network Packet Size(дало прирост с 5 до 31 Mbps).

На аналогичной паре серверов получаем порядка 71мбита хотя бы, да и то, на мой взгляд это очень далеко от идеала.


Я уже и Jumbo packet в настройках сетевых на обоих серверах активировал с установкой значения в 9014.
Так скорость вообще до 10-15Мбит упала. Подозреваю что у хостера этот момент весьма криво работает.

Есть ощущение, что какие-то параметры сетевой или мсскл требуют правки, но не хватает понимания что именно смотреть.

Попробовал промониторить sys.dm_os_wait_stats: https://pastebin.com/XaDP0usz

Куда копать?
Спасибо.


На 2016-м ничего не трогать, на 2012-м выключить TCP Chimney Offload и Receive Side Scaling и проверить Network Direct Memory Access - вот как это делается для 2008-го.

Если кратко - сделать netsh int tcp set global chimney=disabled и netsh int tcp set global rss=disabled. И на перезагрузку.

И начните с того, что выпишите названия сетевых карт у этой пары и у соседней скоростной пары. Это первое.

А второе - проверить наличие антивирусных программ на тормозной паре.

И третье - в настройках электропитания перевести схему энергосебережения с сбалансированной на максимальную производительность (как это наверное сделано на "скоростной" паре серверов).
14 дек 18, 13:13    [21763973]     Ответить | Цитировать Сообщить модератору
 Re: Скорость обмена по сети, возможно ли улучшить ситуацию?  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
nemo_di
Intel Xeon-D 1541

Кто-то советует делать "Max Number of RSS Queues: 1 Queue (resulted in higher performance than multiple queues)", кто-то в этой же ветке для ксеонов (по настройкам FreeNAS) советует делать Put RSS Queues to 4 (running an i5 so I don't have 8 logical cores, which is default setting).

Рекомендую поискать по форуму про FreeNAS - эти ребята знают, как сделать кошерную скорость на любом железе.
14 дек 18, 13:18    [21763982]     Ответить | Цитировать Сообщить модератору
 Re: Скорость обмена по сети, возможно ли улучшить ситуацию?  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
nemo_di
Проверяю ФТП(скачиваю со второго на первый), скорость под гигабит.

Это не показатель. Делаете проект SSIS, на втором сервере (получателе) запускаете чтение с первого и подсчет количества строк в приемнике (без фиксации в базе данных), проверяете. Затем вставляете в режиме fast load (аналог bulk insert) на базу на втором. Проверяете. Затем делаете простой режим (с журналированием вставляемых строк, не fast load). Проверяете.

И получаете скорость загрузки из базы на одном в базу на другом.
14 дек 18, 13:21    [21763987]     Ответить | Цитировать Сообщить модератору
 Re: Скорость обмена по сети, возможно ли улучшить ситуацию?  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
nemo_di
WarAnt, подскажите пожалуйста, где и как это можно посмотреть.


при выполнении запроса смотреть на sysprcesses например, там есть lastwaittype

а вобще вы проверяли что отдающий сервер может выполнять запрос в нужной вам скорости, наличие индекса по дате?
просто запрос выполните без удаленного сервере локально, будет быстрее?
14 дек 18, 15:37    [21764152]     Ответить | Цитировать Сообщить модератору
 Re: Скорость обмена по сети, возможно ли улучшить ситуацию?  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
WarAnt
nemo_di
WarAnt, подскажите пожалуйста, где и как это можно посмотреть.


при выполнении запроса смотреть на sysprcesses например, там есть lastwaittype
Если это 2017 то лучше смотреть суммарно ожидания по сессии.
DECLARE @session_id INT = <Your Session Id>
SELECT 
  wait_type 
  ,wait_time_sec = CAST(wait_time_ms / 1000. AS DECIMAL(20, 2))
  ,[avg_wait_time ms/task] = CAST(ISNULL(wait_time_ms / NULLIF(waiting_tasks_count, 0), 0) AS DECIMAL(20, 2))
  ,signal_wait_time_sec = CAST(signal_wait_time_ms / 1000. AS DECIMAL(20, 2))
  ,waiting_tasks_count
FROM sys.dm_exec_session_wait_stats 
WHERE session_id = @session_id
ORDER BY wait_time_sec DESC
14 дек 18, 23:16    [21764528]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить