在高峰期,我们的Web应用程序出现性能问题,当前它在一个2003 IIS6 Web服务器和一个SQL Server 2005数据库服务器之间分开。数据库服务器上的查询时间看起来很好(大约30ms),CPU很低(低于20%),但查询可能需要很长时间才能在Web服务器上执行(超过1秒)。SQL Server 2005网络IO等待时间(ASYNC_NETWORK_IO等待类型)问题
我在perfmon寻找线索,并看到平均网络IO等待时间为〜400ms,这可以很好地解释性能差异。我还在SSMS内部运行了一些查询,并且看到每秒都有大约10,000毫秒的累积ASYNC_NETWORK_IO等待类型。
从一些研究中,似乎问题是网络容量不足,或者Web服务器没有足够快地处理结果。我该如何去调查它是什么,然后解决?
我们使用NHibernate作为我们的数据层,所以根据我所知没有使用DataReader。没有已知的查询会返回大型结果集,尽管有一个表具有包含压缩XML文档的列。
在此先感谢
附加请求信息
- SQL Server设置为使用TCP/IP 和共享内存协议
- 我们做每个页面,没什么大约4 DB请求荒谬的
- 在高峰时间DB服务器发送1.5MB /秒
- 在峰值时,Web s erver CPU大约60%
- AT峰值,Web服务器NIC负载为13MB /秒。 8MB正在发送,5MB正在接收。同样的NIC处理SQL和HTTP流量
- 我们确实使用了一些缓存,但应用程序是非常动态的,所以需要多达大部分时间
在perfmon中,您是否有一张数字表示网卡当前正在通过的秒数? – Andrew 2010-07-01 22:21:14
当前网络接口\发送的字节数/秒为〜560,000,尽管我们目前没有处于高峰时间,网络IO等待时间为0ms。这是我应该检查的perfmon stat吗?我将在明天更新问题,并提供发生问题时的高峰时段的统计数据。 – 2010-07-01 22:33:05
字节/秒足以显示每秒半兆,这不是任何想象中的高数字。 – Andrew 2010-07-01 22:39:52