sql-server – ASP.NET WebAPI和IIS中的请求时间不一致
问题
我正在测试我们的一个AngularJS ASP.NET WebAPI应用程序的性能.我观察到的奇怪的事情是,与Fiddler不同的时间执行完全相同的查询. 这种行为不仅在服务器上而且在本地机器上也被观察到. 细节 该应用程序使用Chrome进行测试,并使用Angular JS版本1.3.8编写在ASP.NET WebAPI(Microsoft.AspNet.WebApi版本5.2.2)中. 服务器是带有SQL Server 2008和IIS 7.5的Windows Server 2008 R2. 我的本地机器是Windows 8.1与Visual Studio 2013和SQL Server 2014. 我注意到,根据Fiddler,完全相同的查询将以不同的时间执行(蓝色查询是相同的,而白色的查询是另一种完全相同的查询): 例如查询号码26的详细时间是: Request Count: 1 Bytes Sent: 583 (headers:517; body:66) Bytes Received: 3,844 (headers:260; body:3,584) ACTUAL PERFORMANCE -------------- ClientConnected: 17:26:25.099 ClientBeginRequest: 17:27:26.544 GotRequestHeaders: 17:27:26.544 ClientDoneRequest: 17:27:26.544 Determine Gateway: 0ms DNS Lookup: 0ms TCP/IP Connect: 0ms HTTPS Handshake: 0ms ServerConnected: 17:26:25.102 FiddlerBeginRequest: 17:27:26.544 ServerGotRequest: 17:27:26.544 ServerBeginResponse: 17:27:26.554 GotResponseHeaders: 17:27:26.554 ServerDoneResponse: 17:27:26.554 ClientBeginResponse: 17:27:26.554 ClientDoneResponse: 17:27:26.554 Overall Elapsed: 0:00:00.010 查询号28的详细时间是: Request Count: 1 Bytes Sent: 583 (headers:517; body:66) Bytes Received: 3,584) ACTUAL PERFORMANCE -------------- ClientConnected: 17:26:25.099 ClientBeginRequest: 17:27:29.104 GotRequestHeaders: 17:27:29.104 ClientDoneRequest: 17:27:29.104 Determine Gateway: 0ms DNS Lookup: 0ms TCP/IP Connect: 0ms HTTPS Handshake: 0ms ServerConnected: 17:26:25.102 FiddlerBeginRequest: 17:27:29.104 ServerGotRequest: 17:27:29.104 ServerBeginResponse: 17:27:29.616 GotResponseHeaders: 17:27:29.616 ServerDoneResponse: 17:27:29.616 ClientBeginResponse: 17:27:29.616 ClientDoneResponse: 17:27:29.616 Overall Elapsed: 0:00:00.512 正如我所说,他们是完全相同的查询(相同的标题,相同的数据等). 查询28在查询26之后1-2秒执行. 问题 这种行为的主要原因是什么?我应该在哪里搜索问题?奇怪的是,查询首先是快速,然后慢,然后再次快速等等.我没有理由问题与数据缓存有关. 如何精确测试服务器上的时间,以找出0.010和0.512秒之间的差距?差距超过50倍. 解决方法这不是一个有角度的问题,但是我将如何解决这个问题:>使用这样的东西chrome extension for a REST API client来向终端发出请求. (您也可以使用以下内容:http://jmeter.apache.org/,但设置更复杂) 你打电话给外部服务吗? >如果时间仍然一致,请在数据库中加载更多数据,直到时间不一致.然后配置查询并开始优化它们. 现在,通过如何不一致的时间,我会假设该服务在加载该数据时做其他事情:外部服务调用..某事. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |