最近公司的一个ASP.NET站点频繁出现Server Too Busy错误,具体表现为页面响应慢、经常出现Server Too Busy异常;但实际上服务器的资源消耗却很低,CPU使用只有10%左右,非常奇怪。

该站点运行环境为Windows 2000,IIS5.0,.NET Framework 1.1,站点压力约为每秒10个连接,峰值时约为30。

从网上查找相关资料后,从表现出的情况来看(响应慢,抛出Server Too Busy异常),初步判断为同时连接过多引起的线程阻塞引起。修改web.config中的httpRuntime配置节中的appRequestQueueLimit参数后,Server Too Busy 的错误得到解决。此参数默认从machine.config中继承,默认值为100,改为1000后Server Too Busy的错误不再出现。

虽然服务器忙的错误解决了,但是站点响应还是很慢,有时候要等上5—10秒才能打开页面。分析原因应该是同时请求过多,而IIS工作线程不足的原因引起,修改machine.config中processModel配置节maxWorkerThreads参数为200后站点响应速度慢的问题得到解决。此参数默认值为20,可根据服务器硬件配置于压力大小适当调整。

分析原因,是因为站点程序中使用了HttpWebRequest请求外部服务器的页面,而这个操作是相当耗时的(外部服务器响应慢是主要原因)。当访问者的请求到达ASP.NET工作进程后,ASP.NET首先会检查是否有空余的工作线程(WorkerThread),如果有的话,就交给一个空闲的工作线程去处理,如果没有空闲的工作线程,那么这个请求就会被放到请求队列(RequestQueue)中,这个时候的表现就是响应很慢。当访问量过大导致请求队列也满了的时候,ASP.NET就会抛出Server Too Busy异常了。在.NET 1.1中,默认的工作线程和请求队列分别为20和100,当运行的代码比较费时而访问量又较大的时候,这两个默认值显然就太小了。(现在的服务器硬件便宜了,一般PC服务器的吞吐量都应该远超过这个数)。这两个值可以根据服务器压力大小来进行合理配置。以调整站点吞吐量。

完!

转载于:https://www.cnblogs.com/hhh/archive/2007/01/30/635086.html

ASP.NET性能调整之解决Server Too Busy错误相关推荐

  1. Server Too Busy

    无法访问Hotmail,出现Server Too Busy 错误. 转载于:https://www.cnblogs.com/insus/archive/2009/04/22/1441572.html

  2. Windows Server 2003 性能调整指南

    本文介绍了有助于提高Microsoft® Windows  Server™ 2003 系统性能表现的重要参数和设置.文章对每一种设置及其可能具有的效果进行了描述,帮助用户根据自己的系统.工作负载和性能 ...

  3. semaphore性能问题_SQL Server性能调整– RESOURCE_SEMAPHORE等待

    semaphore性能问题 When dealing with SQL Server performance tuning waits, we may see RESOURCE_SEMAPHORE w ...

  4. 使用Windows Performance Monitor进行SQL Server性能调整

    Windows Performance Monitor basics article, we described the most important Windows Performance Moni ...

  5. WebSphere Application Server性能调整工具包

    IBM已发布了WebSphere Application Server性能调整工具包 ,该工具包具有从Eclipse工作区*监视多个 WebSphere Application Server的功能. ...

  6. sql server 性能_SQL Server硬件性能调整

    sql server 性能 SQL Server Performance Tuning can be a difficult assignment, especially when working w ...

  7. asp.net性能常用优化

    1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池( ...

  8. asp.net性能的技巧

    1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提 供了连接池 ...

  9. asp.net 性能优化细节

    asp.net程序性能优化的七个方面 (转) 2007-12-27 04:57 一.数据库操作 转自: http://www.itimes.com.cn/blog/205/look.aspx 1.用完 ...

最新文章

  1. 卷机神经网络的可视化(可视化中间激活)
  2. 011 吃药call功能分析和代码编写
  3. python老王卖西瓜_使用Python爬取京东商品晒单图
  4. 点火提前角的修正方式有哪些_“天问一号”完成第二次轨道中途修正:精度很高,本次修正量很小...
  5. How to handle the generic error Cannot read property md of undefined
  6. javaee实验报告心得_JavaEE实验报告.doc
  7. 使用java实现数字滤波器
  8. 怀旧系列(2)----FoxBase,UCDOS,WPS
  9. 2023天津大学土木水利专业考研成功经验分享
  10. Arduino 红外接收码获取程序
  11. 《跨境电商 —— 阿里巴巴速卖通实操全攻略》一一2.2 发布你的第一个产品...
  12. 戒指戴在不同的手指上代表的意思
  13. 淘宝图片指纹匹配功能c#实现
  14. 广义相对论和量子力学在哪些地方发生了严重的冲突(转)
  15. Vue中添加背景图片
  16. c语言编程一对新出生的兔子,C语言 有一对兔子。从出生后第三个月起每个月都生一对兔子,小兔子长到三个月后又生一对小兔子,假如兔子都不死,问每个月的兔子总数为多少。...
  17. html图片水平镜像翻转
  18. Java 第5天 经典算法之冒泡排序
  19. DataBinding原理----单向数据绑定(3)
  20. HDOJ 动态规划总结

热门文章

  1. 计算机如何表示色彩?
  2. 2022-2028年中国专用化学品行业投资分析及前景预测报告
  3. Linux shell 学习笔记(5)— 文件权限(添加、修改、删除用户及创建、修改群组)
  4. docker-compose的安装与简单使用
  5. 机器学习常用术语词汇表
  6. linux pytorch 快速安装
  7. pytorch之expand,gather,squeeze,sum,contiguous,softmax,max,argmax
  8. LeetCode简单题之两个相同字符之间的最长子字符串
  9. 合肥工业大学—SQL Server数据库实验九:视图的定义与使用
  10. 软件工具将GPU代码迁移到fpga以用于AI应用