我有 2 台服务器:一台数据库服务器(SQL Server 2008,称为服务器 A)和一台应用程序服务器(称为服务器 B),它们向第一台服务器发送 SQL 查询。
它们实际上位于同一个局域网中,但我们计划将它们分开在两个不同的地理位置。我尝试估算两台服务器之间所需的最小带宽,以便我的应用程序不会出现性能问题。我如何估算两台服务器之间交换的数据量?
例如,我想要的是:在 xx/xx/xxxx 天,从 A 向 B 发送了大约 1.5 GB 的数据,从 B 向 A 发送了大约 750 MB 的数据。
SQL Server 上是否有诊断工具可以测量这一点?还是只是网络工具?
我无法访问任何物理硬件设备,但我是两台服务器的管理员。谢谢。
答案1
如果你无法访问交换机,则可以使用网络分析工具,例如微软网络监控或者Wireshark。可能有更简单的工具可以测量数据吞吐量,但由于我对 Wireshark 很熟悉,所以我通常使用它。我将使用 SQL Server 上的此捕获过滤器在相关网络接口上设置捕获:
host 10.10.10.10 and port 1433
将服务器B的实际ip地址替换为ip地址,如果不是默认实例,则更改端口,取消选中“混杂模式”并启动捕获,然后在统计信息->摘要中查看捕获的大小。
我同意其他发帖者的观点,根据应用程序的架构,拆分服务器可能不是一个好主意。服务器之间响应时间的轻微增加可能会大大降低性能,尤其是在存在许多连续 SQL 查询的情况下。这也是您可以在 Wireshark 捕获中观察到的(但在 SQL Profiler 中可能更容易)。
答案2
您可能希望在两个服务器所连接的交换机端口上启用 Netflow 并分析该流。
答案3
您可以运行 Perfmon 并捕获每秒发送/接收的字节数;您必须捕获到文件以汇总数据,但它会显示您的峰值。它将包括所有流量,而不仅仅是 SQL。