Я тестирую различные конфигурации для загрузки данных с удаленного SQL-сервера с помощью SSIS. В кластерной ситуации SSIS медленнее обращается к локальному кластеризованному экземпляру SQL по сравнению с некластеризованным локальным экземпляром SQL. Это похоже на любой сценарий, в котором SSIS обращается к кластеризованному экземпляру SQL; обмен данными происходит по сети независимо от того, является ли экземпляр SSIS локальным или нет. Это правда?
В моем текущем сценарии SSIS 2008 R2 работает на узле с кластеризованными экземплярами SQL Server 2008 R2. Кажется, что он взаимодействует с кластеризованным экземпляром через какой-то сетевой интерфейс, даже если они оба находятся на одном узле. Как ни странно, я не могу определить, какой это интерфейс.
Вот общий план:
Физический IP-адрес узла 1 кластера 192.168.1.100
Имя экземпляра SQL Server "sql2008" имеет IP-адрес 192.168.1.101.
Экземпляр SQL Server находится на узле 1
Источник удаленного SQL-сервера для SSIS IP 192.168.1.55
Скорость передачи нагрузки SSIS кажется медленной. Сетевой сеанс SSIS с удаленным источником сервера SQL отображается в разделе «Сеть» в мониторе ресурсов.
Изображение: DTExec.exe
PID: 8864
Адрес: 192.168.1.55
Отправка (бит / сек): 968
Прием (бит / сек): 1,682,022
Итого (бит / сек): 1,682,990
Но SSIS для загрузки также появляется в сети. Кажется, что он запускается с локального узла на IP-адрес конечного SQL-сервера через сетевую связь, потому что DTexec отображается в Resource Monitor - Network как говорящий с IP-адресом конечного SQL-сервера.
Изображение: DTExec.exe
PID: 8864
Адрес: 192.168.1.101
Прием (бит / сек): 120
Отправка (бит / сек): 20 300 868
К сожалению, когда я использую сетевой монитор для просмотра трафика, появляется трафик dtexec из источника, но активность загрузки, похоже, не использует какой-либо из сетевых интерфейсов и не видна.
При запуске этого же пакета (с тем же неизменным источником) с менее мощным некластеризованным блоком пакет SSIS работает в 2 раза быстрее, говоря с локальным экземпляром, и процесс загрузки Dtexec не отображается в разделе «Сеть» в мониторе ресурсов. Появляется только сетевой сеанс Dtexec для исходного процесса с такой же скоростью.
Придает ли мне импульс недостающий сетевой трафик в некластеризованном сценарии, или я смотрю на что-то вводящее в заблуждение?
Ваш SQL Server имеет IP-адрес, отличный от вашего SSIS. Кластерный SQL всегда будет получать трафик с «виртуального сетевого адреса», ip = 101 в вашем случае, даже если он размещен на «Узле A» и у вас есть программа, работающая на «Узле A», SSIS ip = 100 в ваше дело.
Так работает кластеризация.
Кстати, виртуальный IP-адрес контролируется службой кластеризации и привязан к одной из сетевых карт на узле A или B, на котором когда-либо размещается кластерный SQL Server.