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

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

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

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

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

    完!

posted @ 2007-01-30 21:02 海边的风 阅读(661) 评论(1) 编辑

今天淘到了几个好东西,都是很实用的东西,简直太好了。

1、同步精灵,一款非常小巧的目录同步软件,绿色版,用来备份方便极了。

功能简介

    这是一个小巧实用的目录同步/备份工具,可以使一个目录与另一个目录完全同
步,适于进行资料备份和制作镜像目录,具有以下特点:

    如果两个目录中只有少数文件不相同,程序会自动进行分析判断,只对不相同的
文件进行同步操作,因此如果两个目录中文件很多的时候,使用本程序进行同步将
比直接拷贝复制快速高效的多。

2、Magic Starter ,一款极小巧的软件运行宿主程序,绿色软件,可实现不登录的情况下运行一些需要登录运行的程序。

功能简介:

  大家可能知道,在WinNT/2k/XP中,系统启动后,如果没有设置自动登陆情况下,
系统会停在登陆画面,等待你输入用户名和密码登陆系统,即使你将需要系统启动
时自动运行的程序放在了各种启动组中,但是在登陆以前这些程序都不会被运行,
造成了很多麻烦。本程序就是为了解决这个问题而设计的,使用本程序,可以让任
何程序在系统登陆以前即被自动运行,比如可以让一些服务器程序再不登陆系统的
情况下自动运行,大大方便了服务器的架设。

另外还有一些小软件,也是非常值得推荐的,可以在作者的主页上找到。 http://www.dxqsoft.com

发现这些小东西纯属偶然,因为家里用的是长城宽带,没有支持长宽自动登录的路由器(电脑城好像有,不过得一百多银子呢),所以要想两台电脑上网就必须得先启动主机运行长宽登录软件,特麻烦,所以打算自己写一个不登录系统就可以运行的登录客户端。首先要做的就是抓包,分析官方的客户端都发了哪些数据。抓包使用的winsock expert,它可以实现对指定进程的数据抓包,小巧好用。然后无意中来到winsock expert作者的主页,就发现了上面的东西,简直太好了,刚好满足了我的需求,太赞了。神奇的是,他们居然是同作者的作品。

相关链接:
作者董雪强的主页: http://www.dxqsoft.com

posted @ 2007-01-30 00:39 海边的风 阅读(173) 评论(0) 编辑