最近公司的一个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. php实现input输入框失去焦点自动保存输入框的数据
  2. javascript中变量的判断
  3. UriComponentsBuilder 拼接URL、解析URL
  4. java 创建定时器_SpringBoot创建定时任务
  5. SharpZipLib 压缩ZIP导出
  6. linux la 的使用方法,Linux简介及常用命令使用4--linux高级命令与技巧(示例代码)
  7. java 中类型后面三个点的用法
  8. 计算机积木游戏,乐高积木模拟器
  9. 推荐系统系列教程之十三:如果关注排序效果,那么这个模型可以帮到你
  10. CentOS 特殊变量($0、$1、$2、 $?、 $# 、$@、 $*)
  11. 开源新手必看7个小技巧
  12. 深度探索C++对象模型-Data语义学
  13. spark标签计算及用户画像应用
  14. 同IP不同端口导致cookie冲突的解决方法
  15. 杰出女吉他大师Muriel Anderson
  16. FFmpeg命令(七)、 音频与视频合并成视频
  17. CCS报错 creating output section XXXXXXXXX without SECTIONS specification 解决方法
  18. Eclipse IDE的使用
  19. 《给教师的一百条建议》读后感3500字
  20. 数据显示ETH燃烧的有多猛

热门文章

  1. 程序主动进行电话短信报警,自定义电话、短信、钉钉报警通知
  2. SpringBoot部署脚本,拿走即用!
  3. Nginx搭建负载均衡集群
  4. 桌子上有个盘子_日本留学生活:留学生在餐厅刷盘子的传闻,竟然在自己身上上演...
  5. 2022-2028年中国ABS管行业市场全景调研及发展趋势分析报告
  6. Linux shell 学习笔记(9)— 循环语句(for、while)以及更改字段分隔符
  7. debian 10 ssh简单配置
  8. Python 读取文本时的 read/readline/readlines
  9. LeetCode简单题之设计 Goal 解析器
  10. MyBatis——XML配置解析