当用户数量增加时,ASP网站运行缓慢

时间:2012-08-03 06:51:31

标签: asp.net performance

我需要你的一些信息。我在应用程序中使用了session.TimeOut = 540.这会影响我的应用程序性能一段时间后。当用户数量增加时,它变得非常慢。按钮点击的响应时间几乎超过2分钟。这是托管在应用程序池中的服务器。我不太了解应用程序池。如果会话超时是问题我将删除它。请建议我的方式为更多用户。 enter image description here

作业编号,客户ID,任务将来自一个数据库。当用户单击开始按钮,然后保存在另一个数据库中的数据。我需要更快地为更多用户

3 个答案:

答案 0 :(得分:0)

我认为你有一些页面可以让一些工作花费时间,或者出于某种原因或者一个bug会比平时保持开放的时间更多。

此页面保持锁定会话并保持响应的其余页面,因为会话保存所有页面。

现在,随着超时的增加,此页面将锁定所有内容,这里是您响应时间接近2分钟。

解决方案是找到具有长时间运行问题的页面并通过优化流程来修复它或使其更快,或者如果此页面必须保持长时间运行,则禁用该会话的会话。

相对:
Web app blocked while processing another web app on sharing same session
What perfmon counters are useful for identifying ASP.NET bottlenecks?
Replacing ASP.Net's session entirely
Trying to make Web Method Asynchronous
Does ASP.NET Web Forms prevent a double click submission?

关于服务器

现在,另一方面,如果您的服务器遭受硬件或设置错误,那么您需要检查here is one other answer with points以使其更快。

答案 1 :(得分:0)

  1. 找出花费的时间

    在方法中添加StopWatch,您说“单击按钮需要2分钟”。你可以找到花费最多时间的陈述。

  2. 如果是DB的查询需要花费时间。检查你的sql语句。

    您使用“SELECT Count(*)”而不是“SELECT Count(Id)”吗? *总是慢。另外,不要尝试“SELECT * FROM ....”

  3. 使用缓存。

    有许多方法可以进行缓存。在ASPX页面和您的商业层。 OutputCache是最简单的方式。

    并且,当用户访问页面时,首次缓存页面(例如博客文章)。

  4. 您使用了内存分页吗?

    在gridview或其他列表上进行分页时要小心。如果您只调用DataSource = xxx和DataBind(),即使使用PagedDataSource,也可能是内存分页。它耗费了很多性能。请使用存储过程进行分页。

  5. 检查您的服务器环境

    您在哪里部署网站?许多ISP会限制品牌范围和IIS连接数以及您帐户的CPU时间。

    如果您具有对服务器的RD访问权限。当许多用户访问您的站点时,您可以查看CPU和内存使用情况以查看它们是否很高。如果网站运行缓慢且CPU和内存使用率都不高,则可能是网络品牌的问题。

答案 2 :(得分:0)

以下是一些缩小问题范围的简单步骤 -

1)获取HTTPWatch(免费的基本版本),并从最终用户的角度检查是否真的需要时间。查看请求数,下载的资源数和有效负载。如果没有什么可担心的,请继续下一步

2)如果它不是客户端,那么它通常是服务器上的处理时间。首先跳转到DB - 因为这很容易快速消除。查看进行了多少次DB调用(在staging或dev中运行探查器)并查看是否存在任何长时间运行的查询,缺少索引或统计信息,并记下IO。如果一切顺利,继续前进

3)检查您的应用代码。您可以在构建分析器或专业工具(如Ants)中使用VS.NET。如果代码正常,那么您的网络或外部呼叫,检查您的网络带宽。如果仍然无法缩小范围,请检查您的环境/硬件

最好的方法是应用加载 - 你可以使用简单的工具,如ab.exe(作为Apache Web服务器的一部分)在你的服务器上同时点击并运行App,DB profilers in解决问题的背景。

希望这有帮助!