我们正在运行一个ASP.NET应用程序,现在我们的流量增加了很多,导致用户响应速度慢。我们已经优化了应用程序和数据库,但仍未达到预期的响应时间。我们尝试了ASP.NET缓存,但它也没有帮助。我可以尝试的其他选择是什么?我正在寻找一种可扩展的解决方案,以便在将来能够处理更多的流量。性能问题
性能问题
回答
如果问题是您的数据库 - 那么你需要优化更好,更优的硬件,DBA分析等
如果问题是你需要配置文件,并找出究竟其中一个缓慢的Web应用程序缓慢发生。这里的问题很模糊。下载ANTS配置文件或写你自己的跟踪输出(蚂蚁更容易恕我直言),看看你的应用程序放缓。这是因为会话锁,数据库,linq查询执行时间和时间(例如调用query.Count()将每次重新执行查询)等等等
检查您的viewstate大小 - 使用工具fiddler调查页面大小,第一个字节的时间等。
这是一个模糊的问题,但这些是一些基本的项目。
我们需要更多的信息,但这应该让你开始。
“升级”的答案不告诉我们在哪里或什么。您的驱动器是否针对读取的簇大小进行了优化您的文件组是否为读/写等进行了优化。但是,你提到你正在将会话存储在sql server中。那么现在就会发生这种情况,因为潜在每个请求都有数据库开销。状态服务器应该有点帮助:http://www.codeproject.com/KB/aspnet/p2pstateserver.aspx所以如果没有,那么你的问题可能在别处。为什么不禁用某些控件的viewstate并将缓存中的数据重新绑定,例如作为测试(或一起禁用) –
我想问候的@AdamTuliper的答案强调的ViewState的
你可能有很多是逐渐加入庞大的数据GridView的的。 考虑如果不需要,关闭ViewState。含义:如果用户不与gridview交互(通过选择一行,更新等),那么不需要网格视图在服务器和客户端之间来回切换。
但是,如果情况并非如此,那么我们需要更多信息才能提供帮助。
我们已经将硬件升级到了最新技术。我们将会话存储在MSSQL服务器中,我认为第一个瓶颈是SQL Server,因为它似乎不具备可扩展性。 我们已经对SQL服务器进行了一些测试,当用户数超过15000时会出现问题。我们已经尝试会话状态服务器,但它并没有帮助 我们的应用程序的一部分大量使用ViewState,我们正在努力减少VS的大小,但这是我们可以做的事情。我们正在尝试编写一个自定义VS商店,我们将把大型VS保留在本地缓存中,而不是保留在ASP.NET响应中。 – Ravian
Asp.net缓存本身有一些限制和性能问题。它不会使应用程序具有可伸缩性,因为它在本质上处于进程中。但是,如果可扩展性是您主要关心的问题,那么您需要实现分布式缓存。分布式缓存可以使应用程序高度可扩展。基本上,内存中分布式缓存是一种缓存形式,它允许缓存跨越多个服务器,以使其可以扩大规模并提高事务处理能力。由于其架构,它也是一个非常可扩展的平台。它分布在多个服务器上,但仍然可以为您提供单个缓存的逻辑视图。我宁愿代表我的经验建议你NCache。欲了解更多详情,请阅读本文 “improve asp.net app performance and scalability”。它会很好地帮助你。
感谢Nelly,我们已经在评估NCache和其他第三方缓存提供商。 – Ravian
- 1. 性能问题
- 2. 。性能问题
- 3. 性能问题
- 4. 性能问题
- 5. 性能问题
- 6. 性能问题
- 7. 性能问题
- 8. 性能问题
- 9. 性能问题
- 10. PHP性能问题
- 11. WPF性能问题
- 12. C#性能问题
- 13. ASP.NET性能问题
- 14. DrawingContext.DrawLine性能问题
- 15. Solr性能问题
- 16. jQuery.keypad性能问题
- 17. Oracle性能问题
- 18. WinForms性能问题
- 19. System.DirectoryServices.AccountManagement性能问题?
- 20. captureOutput:didOutputSampleBuffer:fromConnection性能问题
- 21. SwiftyJSON性能问题
- 22. AOP性能问题
- 23. BitVector性能问题
- 24. Castor性能问题
- 25. List.Add性能问题
- 26. 性能问题JOGL
- 27. Redis性能问题?
- 28. Ionic2性能问题
- 29. CSS性能问题
- 30. Suggestionbox性能问题
移动到多个服务器? –
您是否认为您的Web服务器硬件资源与请求数量相关?如果您从Web服务器硬件资源的最佳功能获得预期输出,这可能也很重要。例如:额外的RAM可能是一个很好的选择,如何使用性能计数器等事先做过研究 – DSharper