我正在测试使用 SSIS 从远程 SQL 服务器加载数据的不同配置。在群集情况下,与非群集本地 SQL 实例相比,SSIS 与本地群集 SQL 实例通信的速度似乎较慢。这看起来像是 SSIS 与群集 SQL 实例通信的任何场景;无论 SSIS 实例是否是本地的,通信都会通过网络进行。这是真的吗?
在我当前的场景中,SSIS 2008 R2 在具有群集 SQL Server 2008 R2 实例的节点上运行。它似乎通过某个网络接口与群集实例进行通信,即使它们都位于同一节点上。奇怪的是,我无法识别它是哪个接口。
总体布局如下:
集群节点1物理IP 192.168.1.100
SQL Server“sql2008”实例名称的 IP 为 192.168.1.101
SQL Server 实例位于 Node1 上
SSIS IP 192.168.1.55 的远程 SQL 服务器源
SSIS 负载传输速率似乎很慢。SSIS 与远程 SQL 服务器源的网络会话显示在资源监视器中的“网络”部分下。
图片:DTExec.exe
进程ID:8864
地址:192.168.1.55
发送(B/秒):968
接收(B/秒):1,682,022
总计(B/秒):1,682,990
但是用于加载的 SSIS 也出现在网络中。它似乎是通过网络通信从本地节点运行到目标 SQL 服务器 IP,因为 DTexec 在资源监视器 - 网络下显示为与目标 SQL 服务器 IP 通信。
图片:DTExec.exe
进程ID:8864
地址:192.168.1.101
接收(B/秒):120
发送(B/秒):20,300,868
不幸的是,当我使用网络监视器查看流量时,出现了来自源的 dtexec 流量,但是负载活动似乎没有使用任何网络接口,因此看不到。
当使用功能较弱的非集群系统运行同一个包(针对相同的未更改源)时,SSIS 包在与本地实例对话时运行速度快 2 倍,并且 Dtexec 加载进程不会出现在资源监视器的网络部分中。仅源进程的 Dtexec 网络会话出现并且速度相同。
非集群场景中缺少的网络流量是否会给我带来提升,还是我看到了一些误导性的东西?
答案1
您的 SQL Server 确实具有与 SSIS 不同的 IP 地址。群集 SQL 将始终从“虚拟网络地址”获取流量,在您的情况下为 ip=101,即使它托管在“节点 A”上,并且您在“节点 A”上运行程序,在您的情况下为 SSIS ip=100。
这就是聚类的工作方式。
顺便说一下,虚拟 IP 由集群服务控制,并绑定到节点 A 或 B 上的一个网卡,无论该节点托管集群 SQL Server