我需要你的一些信息。我在应用程序中使用了 session.TimeOut=540。一段时间后这是否会影响我的应用程序性能。当用户数量增加时,它会变得非常慢。单击按钮的响应时间也几乎超过 2 分钟。这托管在应用程序池的服务器中。我不太了解应用程序池。如果会话超时是问题,我将删除它。请建议我的方式更多的用户。
Job Numbers,CustomerID,Tasks 将来自一个数据库。当用户单击开始按钮时,数据保存在另一个数据库中。我需要这需要为更多用户提供更快的速度
我需要你的一些信息。我在应用程序中使用了 session.TimeOut=540。一段时间后这是否会影响我的应用程序性能。当用户数量增加时,它会变得非常慢。单击按钮的响应时间也几乎超过 2 分钟。这托管在应用程序池的服务器中。我不太了解应用程序池。如果会话超时是问题,我将删除它。请建议我的方式更多的用户。
Job Numbers,CustomerID,Tasks 将来自一个数据库。当用户单击开始按钮时,数据保存在另一个数据库中。我需要这需要为更多用户提供更快的速度
找出时间花在哪里
以您所说的“单击按钮超过 2 分钟”的方法添加秒表。您可以找到花费最多时间的语句。
如果是对数据库的查询,则需要花费时间。检查你的 sql 语句。
您是否使用“SELECT Count(*)”而不是“SELECT Count(Id)”?* 总是较慢。另外,不要尝试“SELECT * FROM....”
使用缓存。
有很多方法可以做缓存。在 ASPX 页面和您的业务层中。OutputCache是最简单的方法。
并且,在用户第一次访问页面时缓存页面(例如博客文章)。
你用过内存分页吗?
在 gridview 或其他列表上进行分页时要小心。如果只调用 DataSource=xxx 和 DataBind(),即使使用 PagedDataSource,这也可能是内存分页。它花费了很多性能。请使用存储过程进行分页。
检查您的服务器环境
你在哪里部署网站?许多 ISP 会限制品牌范围和 IIS 连接数以及您帐户的 CPU 时间。
如果您对服务器具有 RD 访问权限。当许多用户访问您的站点时,您可以查看 CPU 和内存使用情况以查看它们是否很高。如果站点速度很慢并且 CPU 和内存使用率都不高,则可能是网络品牌范围的问题。
以下是一些缩小问题范围的简单步骤 -
1) 获取可用的HTTPWatch(有一个免费的基本版本)并从最终用户的角度检查真正需要时间的内容。查看请求数、下载资源数和有效负载。如果没有什么可担心的,请继续下一步
2)如果它不是客户端,那么它通常是服务器上的处理时间。首先跳到 DB - 因为这很容易快速消除。查看进行了多少 DB 调用(在 staging 或 dev 中运行分析器)并查看是否有任何长时间运行的查询、缺少索引或统计信息,并注意 IO。如果一切顺利,继续前进
3) 检查您的应用程序代码。您可以在构建分析器或 Ants 等专业工具中继续使用 VS.NET。如果代码没问题,那么它是您的网络或您进行的外部调用,请检查您的网络带宽。如果您仍然无法缩小范围,请检查您的环境/硬件
实现它的最佳方法是应用负载 - 您可以使用简单的工具,例如 ab.exe(作为 Apache Web 服务器的一部分)在您的服务器上进行并发点击,并在后台运行应用程序、数据库分析器以解决问题。
希望这可以帮助!
我认为您有一些页面需要一些时间来完成某些工作,或者由于某种原因或错误保持打开的时间比平时更长。
此页面保持锁定会话并阻止响应的其余页面,因为会话保存所有页面。
现在,随着超时时间的增加,这个页面锁定了所有内容,你的响应时间接近 2 分钟。
解决方法是找到存在长时间运行问题的页面并修复它或通过优化进程使其更快,或者如果该页面必须保持长时间运行,则禁用该页面的会话。
相对:
在共享同一会话时处理另一个 Web 应用程序时 Web 应用程序被阻止
哪些性能计数器可用于识别 ASP.NET 瓶颈?
完全替换 ASP.Net 的会话
尝试使 Web 方法异步
ASP.NET Web 窗体是否会阻止双击提交?
现在从另一方面来看,如果您的服务器受到硬件或设置错误的影响,那么这里是另一个答案,您需要检查以使其更快。