我有一个用于 Asp.Net 4.0 Web 应用程序的测试环境。它运行在专用的 Windows 2003 Web 服务器 (IIS 6) 上,但速度很慢!机器的 CPU 和内存从未达到 100%。当我在生产服务器上运行该应用程序时,它的速度快得要命。
我认为这与测试服务器的可怕带宽有关。它使用远程 SQL 服务器。我如何检查远程 SQL 是否是瓶颈?我如何检查机器的上传是否是瓶颈?
提前致谢,JP
编辑:网络速度:从测试到数据库的平均 ping 时间为 33 毫秒。www.Speedtest.net 给出测试服务器:10mbit 下载/0.8mbit 上传。远程数据库服务器:94mbit 下载/74mbit 上传。但 0.8mbit 上传(测试服务器)大约是每秒 100 千字节。应该足以执行几个简单的 sql 查询吗?还是不够?
答案1
我过去曾经以相同的方式使用与您的类似速度的连接设置测试环境,并且几乎不会注意到 SQL Server 位于其他地方(仅进行测试,从未尝试过大量使用)。
唯一的例外是当大量数据而不是少量数据传输到应用程序时(如果您将远程桌面连接到远程服务器,运行具有大量结果的查询并且结果在 1-2 秒内返回,您可以看到相同的效果 - 远程运行查询,下载需要 3 倍/4 倍/5 倍,具体取决于您的连接)。
您能否在 Web 应用中添加几个日期计数器来报告连接到 SQL Server 所用的时间、获取结果所用的时间、显示页面所用的时间?或者您可能能够使用 SQL Trace 获得相同的结果?(并与生产服务器进行比较)