Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как определить число потоков для Network I/O
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть-ли возможность определить сколько SQL Server использует потоков для сетевого ввода/вывода? У меня возникает такое ощущение, что один. При любой нагрузке на 10Gb сетевухе больше 12,5% не используется. То же самое наблюдаю если смоделировать один поток c двумя асинхронными буферами через NTttcp. NTttcp с 8ю потоками и 2мя асинхронными буферами загружает сеть почти на 100%. В числах это примерно Пакетов принято в сек ~15000 для SQL и NTttcp с 1 потоком и ~150000 для NTttcp с 8 потоками. размер пакета 32к и для SQL тоже, в настройках сетевух джамбо-фреймы = 9008. соединение точка-точка без маршрутизаторов. IPv4 и IPv6 без разницы. автоподбор окна приема отключен и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2018, 16:46 |
|
||
|
Как определить число потоков для Network I/O
|
|||
|---|---|---|---|
|
#18+
А backup в несколько потоков ? Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2018, 17:04 |
|
||
|
Как определить число потоков для Network I/O
|
|||
|---|---|---|---|
|
#18+
piy8f, 1 файл - ~13000 пакетов/сек 258Мб/сек 2 файла - ~15000 пакетов/сек 320Мб/сек 3 файла - ~17000 пакетов/сек 380Мб/сек 4 файла - ~19000 пакетов/сек 443Мб/сек ... 8 файлов - ~21000 пакетов/сек 480Мб/сек но, немного изменилась ситуация - размер пакета 8к 20000 пакетов в сек это те же 12,5%. при пакете 32к 18 файлов на 1 диск ~22000 пакетов/сек 530Мб/сек 18 файлов на 3 диска ~30000 пакетов/сек 660Мб/сек 25% нагрузку на сеть увидел только в момент когда шел бэкап на 3 диска и параллельно шло копирование большой таблы. все вместе давало около 40 тыс пакетов в сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 12:12 |
|
||
|
Как определить число потоков для Network I/O
|
|||
|---|---|---|---|
|
#18+
ShIgor, BACKUP DATABASE test TO DISK = 'C:\Backups\test.bak' WITH BUFFERCOUNT = 1024, MAXTRANSFERSIZE = 2097152; BUFFERCOUNT, MAXTRANSFERSIZE попробуйте не по умолчанию, если найду ссылку напишу там скрипт делает бэкапы и потом автоматически рисует диаграмму в excel в зависимости от этих параметров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 12:21 |
|
||
|
Как определить число потоков для Network I/O
|
|||
|---|---|---|---|
|
#18+
архивариусShIgor, BACKUP DATABASE test TO DISK = 'C:\Backups\test.bak' WITH BUFFERCOUNT = 1024, MAXTRANSFERSIZE = 2097152; BUFFERCOUNT, MAXTRANSFERSIZE попробуйте не по умолчанию, если найду ссылку напишу там скрипт делает бэкапы и потом автоматически рисует диаграмму в excel в зависимости от этих параметров BUFFERCOUNT, MAXTRANSFERSIZE, количество файлов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 12:34 |
|
||
|
Как определить число потоков для Network I/O
|
|||
|---|---|---|---|
|
#18+
архивариус, у меня нет цели ускорить бэкап ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 15:35 |
|
||
|
Как определить число потоков для Network I/O
|
|||
|---|---|---|---|
|
#18+
ShIgorархивариус, у меня нет цели ускорить бэкап если пишеться на LUN -> RAID то ребилдните массив с самый максимально возмодным значением класстера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 16:20 |
|
||
|
Как определить число потоков для Network I/O
|
|||
|---|---|---|---|
|
#18+
ShIgorархивариус, у меня нет цели ускорить бэкапя в курсе, но если бэкап ускорится, то он будет использовать большую полосу пропускной способности LAN чего вы и хотите добиться?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 16:32 |
|
||
|
Как определить число потоков для Network I/O
|
|||
|---|---|---|---|
|
#18+
Вот скрипт для прокачки 100MB с SQL сервера на самого себя. Можно посмотреть как сказывается промежуточный слой ПО. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2018, 16:52 |
|
||
|
Как определить число потоков для Network I/O
|
|||
|---|---|---|---|
|
#18+
архивариус, Чего я хочу добиться: Есть 2 сервака соединенных между собой прямым шнурком в 10Gb. При любом количестве одновременно запущенных запросов с одного сервера на другой, из нескольких разных приложений и/или к разным базам, я наблюдаю максимально 12,5% загрузки сети и больше никак. Простое копирование одного файла загружает сеть до 60-70% даже в один поток, скорость передачи при этом составляет более 600Мб/сек. В случае SQL (без бэкапа) я не вижу более 140Мб/сек сколько бы запросов (приложений, соединений и т.п.) не использовалось. Те же 140Мб/сек я вижу при тестировании сети программой NTttcp в 8 потоков, но на каждом потоке!!!! причем загрузка сети 100%. Отсюда я делаю вывод, что SQL либо работает в один поток, либо просто тупо не понимает, что сетка не Гигабит, а 10Гигабит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2018, 22:52 |
|
||
|
Как определить число потоков для Network I/O
|
|||
|---|---|---|---|
|
#18+
ShIgorархивариус, Чего я хочу добиться: Есть 2 сервака соединенных между собой прямым шнурком в 10Gb. При любом количестве одновременно запущенных запросов с одного сервера на другой, из нескольких разных приложений и/или к разным базам, я наблюдаю максимально 12,5% загрузки сети и больше никак. Простое копирование одного файла загружает сеть до 60-70% даже в один поток, скорость передачи при этом составляет более 600Мб/сек. В случае SQL (без бэкапа) я не вижу более 140Мб/сек сколько бы запросов (приложений, соединений и т.п.) не использовалось. Те же 140Мб/сек я вижу при тестировании сети программой NTttcp в 8 потоков, но на каждом потоке!!!! причем загрузка сети 100%. Отсюда я делаю вывод, что SQL либо работает в один поток, либо просто тупо не понимает, что сетка не Гигабит, а 10Гигабит. маловероятно , но вдруг, maxdop=1 на сервере по умолчанию? попробуйте в запросе maxdop указать Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2018, 23:25 |
|
||
|
Как определить число потоков для Network I/O
|
|||
|---|---|---|---|
|
#18+
ngrfm, local msAT msOpenQuery ms47317231400 о чем это говорит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2018, 23:32 |
|
||
|
Как определить число потоков для Network I/O
|
|||
|---|---|---|---|
|
#18+
архивариус, MAXDOP 2 по умолчанию и порог 120 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2018, 23:33 |
|
||
|
Как определить число потоков для Network I/O
|
|||
|---|---|---|---|
|
#18+
ShIgorархивариус, MAXDOP 2 по умолчанию и порог 120 попробуйте увеличивать до количества ядер процессора (в разумных пределах если это продакшен сервер :-) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2018, 01:08 |
|
||
|
Как определить число потоков для Network I/O
|
|||
|---|---|---|---|
|
#18+
архивариус, в тестовом запросе (а не на сервере по умолчанию) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2018, 01:09 |
|
||
|
Как определить число потоков для Network I/O
|
|||
|---|---|---|---|
|
#18+
архивариус, на сервере по умолчанию. увеличивать пробовал результат 0. да и с чего вдруг? максдоп - это для одного конкретного запроса, грубо: параллелим исполнение запроса внутри, но передача-то все-равно по одному соединению.. я могу запустить и 1, и 1000 одновременно запросов, с максдопами и без - сеть все-равно будет использована максимум на 12,5%. естественно в случае одного запроса - нагрузки и 0,5 % нет... может мне кто-нибудь показать что у него не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2018, 12:12 |
|
||
|
Как определить число потоков для Network I/O
|
|||
|---|---|---|---|
|
#18+
ShIgor, Если у вас одновременно выполняются 1000 запросов, то чего они ждут? Постоянно ASYNC_NETWORK_IO? При использовании NTttcp с несколькими потоками вы используете сразу несколько портов (Each thread creates a logical processor that connects to (listens) a different port ). В Sql Server используется один порт и соответственно один слушающий поток. Можно для экперимента добавить еще порт в конфигурацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2018, 03:15 |
|
||
|
Как определить число потоков для Network I/O
|
|||
|---|---|---|---|
|
#18+
ShIgorПри любой нагрузке на 10Gb сетевухе больше 12,5% не используется. То же самое наблюдаю если смоделировать один поток c двумя асинхронными буферами через NTttcp Кстати, вы уверены, что это нормальное поведение для NTttcp, что при использовании 1 потока \ порта он загружает сеть только на 12.5%? Наткнулась в другом обсуждении (правда, там была 1Gb карточка) на то, что уже 1 поток должен был загрузить сеть почти полностью. Остальные потоки лишь сильнее приближают загрузку к 100%. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2018, 12:54 |
|
||
|
Как определить число потоков для Network I/O
|
|||
|---|---|---|---|
|
#18+
Eleanor, к тому же склоняюсь. настроил SoftNUMA из 4х нод (4 по 6 процов в каждом), на каждую назначил свой порт. осталось протестировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2018, 14:56 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39609208&tid=1690161]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 389ms |

| 0 / 0 |
