缓慢的初始连接到API

时间:2014-10-01 04:33:24

标签: c# sql-server-2008 amazon-web-services amazon-ec2 profiling

我有一个用C#(webforms)编写的API和一个在AWS EC2 VM上接受JSON POST数据的SQL Server 2008数据库。我的问题是,“首次”使用此API的响应速度相当慢。

我所说的“第一”是指如果我要等一个小时左右,那么发布一些数据,这将是第一个。相比之下,后续的帖子会相当快速地处理,我需要再等一个小时左右才能再次遇到缓慢的“第一次”交易。

由于只有最初的帖子很慢,所以我想知道在闲置一段时间之后某些东西是“旋转下来”,然后在第一次使用时再次旋转,增加了额外的时间。

我尝试过的事情 -

  • 通过性能分析器运行程序 - 这没有什么帮助。据我所知,程序本身没有任何明显的部分,运行速度非常慢或效率低下。
  • 更改配置以始终至少保持与数据库的1个连接。再次,没有真正的变化。我通过在我的连接字符串中添加“Min Pool Size = 1; Max Pool Size = 100”来完成此操作。
  • 更改配置以使用命名管道而不是TCP。再一次,没有真正的变化。我通过在连接字符串中指定的服务器之前添加“np:”来完成此操作,例如。服务器= NP:MyServer的;数据库= MyDatabase的;

我还能做些什么来诊断问题吗?在这种情况下我还应该寻找什么呢?

1 个答案:

答案 0 :(得分:1)

在指定的不使用期后,您的应用池可能会关闭。关机后的第一个调用强制所有内容都被加载回内存,这解释了延迟。

你可以使用这些设置:http://technet.microsoft.com/en-us/library/cc771956%28v=ws.10%29.aspx来查看你是否获得了预期的效果,或设置了一个任务调度程序作业,每隔10 +/-分钟至少进行一次调用,这样做是通过模拟后的 - 一个简单的PowerShell脚本可以为您处理,并将为下次使用保留所有“准备好”。

相关问题