在同一物理的两台虚拟机上,IIS和SQL之间的延迟

我有一台服务器(2×4核心CPU,32GB内存),这是一个Windows Server 2012 Hyper V主机,它承载两个客户虚拟机(也是Windows Server 2012实例)。 其中一个是Web服务器,另一个是SQL服务器。

当点击一个循环超过50条logging的页面时,会有明显的延迟。 我捕获/报告循环中每次迭代的时间,每次迭代约为20-30毫秒。 当然,这相当于整个循环的超过一秒的延迟。

我想也许需要调整SQL,但运行分析器,查询显示几乎0持续时间,所以它似乎是两个虚拟机之间的传输瓶颈。

我有两个虚拟机configuration为使用实际的网卡(与使用VNIC),所以也许这是我的问题的一部分。

此外,这是一个经典的ASP网站,所以它使用SQL OLE DB提供程序,我想知道这是否是问题的一部分。

这是一个新的服务器设置,从一个现有的Windows 2003 / IIS6服务器安装程序,Web和数据库都运行在同一个服务器实例上(无虚拟化)。 在这个设置上,像这样循环游标时没有这样的延迟。 但是有很多变数,我不知道从哪里开始排除。

就我而言,这是一场虚惊。 我认为这个新的Hyper-V设置的延迟是独一无二的,但实际上它也发生在现场服务器上。 这是由于最近对我们的代码做了修改,而且这个问题还没有在现场被发现。

同一networking中两台虚拟机之间的这种延迟的原因在于,所有相同的networking仍然适用。 您不希望循环执行每条logging到SQL Server的logging,而是一次将整个logging集下载到Web服务器,然后一次处理所有内容。