我们正在运行一个ASP.NET应用程序,现在我们的流量增加了很多,导致用户响应时间变慢。我们已经优化了应用程序和数据库,但仍未达到所需的响应时间。我们尝试过ASP.NET Cache但它也没有用。我可以尝试哪些其他选项?我正在寻找一种可扩展的解决方案,应该能够在未来处理更多的流量。
答案 0 :(得分:3)
如果您的数据库出现问题 - 那么您需要优化更好,更好的硬件,dba分析等。
如果问题是网络应用速度缓慢,您需要剖析并确定完全发生缓慢的情况。这里的问题很模糊。下载ANTS配置文件或编写自己的跟踪输出(蚂蚁更容易恕我直言),并查看您的应用程序放慢速度。是因为会话锁,数据库,linq查询执行时间和时间(例如调用query.Count()将每次重新执行查询)等等
检查您的视图状态大小 - 使用工具提琴手调查页面大小,第一个字节的时间等。
这是一个模糊的问题,但这些是一些基本项目。
我们需要更多信息,但这应该让你开始。
答案 1 :(得分:1)
Asp.net缓存本身存在一些限制和性能问题。它不会使应用程序可扩展,因为它本质上是进程内的。但是,如果可扩展性是您主要关注的问题,那么您需要实现分布式缓存。分布式缓存可以使应用程基本上,内存分布式缓存是一种缓存形式,允许缓存跨越多个服务器,以便它可以在大小和事务容量上增长。由于其架构,它也是一个非常可扩展的。它分发它可以跨多个服务器工作,但仍然提供单个缓存的逻辑视图。我宁愿根据我的经验向你推荐NCache。有关详细信息,请阅读本文 “improve asp.net app performance and scalability”。它会帮助你。
答案 2 :(得分:0)
我想强调@AdamTuliper关于ViewState的答案
你可能有很多GridView被大量数据填充。 如果不需要,请考虑关闭ViewState。含义:如果用户没有与gridview交互(通过选择行,更新等等),那么网格视图就不需要在服务器和客户端之间来回传递。
但是,如果情况并非如此,那么我们需要更多信息才能提供帮助。