Web API处于非活动状态5分钟后响应时间过长
High responsetime from Web API after 5 min inactivity
我在预生产环境中遇到了一个奇怪的问题。
我有一个网站,它在另一台服务器上托管的WebApi上执行一些操作。
通常情况下,发出特定的发布请求需要不到一秒钟的时间,但在5分钟的不活动后,相同的发布请求将需要10-30秒。(根据谷歌chrome网络标签)
所提到的张贴请求不是所执行的请求列表中的第一个请求。
请求是使用Ajax完成的。
我运行了SQL探查器来查看数据库查询是否运行缓慢,但这些查询都运行良好,POST请求似乎只是延迟返回。
你们知道为什么会发生这种事吗?
一个很可能的原因是在数据库级别进行编译。第一次使用大多数数据库引擎运行查询时,必须编译sql并制定执行计划。然后将其缓存一段时间。当它不再被缓存时,它必须再次被缓存。sql字符串越长,编译所需的时间就越长。
解决方案是使用存储过程。一旦它运行,它就会保持编译状态,并且执行计划始终可用。
问题解决了!
问题是在请求中使用SMTPClient发送了一封电子邮件。
在web应用程序中,smtp客户端不是异步的,因此必须在POST请求返回之前发送它。
使用TheCodeKing对此问题的回复使其异步:如何避免从应用程序发送电子邮件时出现延迟?
解决了问题!
相关文章:
- 如何用java计算网站的响应时间
- 最大限度地减少Google AdWords Script的响应时间
- 如何使用javascript记录两次按钮按下之间的响应时间(以秒为单位)
- 如何测量 http.NodeJS 中的 ClientRequest 响应时间
- 在javascript中获取不同的时间(分钟)
- Web API处于非活动状态5分钟后响应时间过长
- REST API测量服务器端响应时间(性能)
- 使用Heroku进行套接字轮询时响应时间长
- Microsoft Face Api响应时间
- 更改offline.js中允许的服务器响应时间
- 如何在redux框架中使用Action和Reducer记录响应时间
- 在倒计时/定时器格式时间分钟和秒
- 如何调用“请等待”只有当ajax的响应时间超过X毫秒时才使用
- PHP HttpRequest创建网页-如何处理长响应时间
- 聊天机器人回答/响应时间代码在js
- 有没有办法限制Node (Express)中的速度和响应时间?
- 当URL具有相同的响应时间时,为什么某些AJAX调用比其他调用需要更长的时间才能完成
- 正在测量服务器响应时间(客户端)
- 以小时为单位显示索非亚的当前当地时间:分钟24小时格式
- 有没有办法要求Apache Bench测试提供给URL的所有资源的响应时间