503 service unavailable是啥意思?怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了503 service unavailable是啥意思?怎么解决相关的知识,希望对你有一定的参考价值。

先简单说一下 很多时候是由于网站空间服务器的配置
或者资源限制导致的不足以承受运行的情况
有些是买的时候 不知道有所限制 而不能满足程序的运营需求
最好是联系服务商查阅相关日志 对症下药 如果撑不住最好换机器
-----------------------------------------
出现这种情况是由于您的网站超过了系统资源限制(CPU或者IIS)造成的,
这个现象在WINDOWS2003+IIS6的环境下都会出现,主要是程序占用资源太多。

不同的程序占用的资源都不一样,这个跟程序设计的合理性和优化程度有关;
另外,一些死循环程序,或者不优化的程序都会占用太多的系统资源,而系统资源明显是有限的。 如果一个网站的程序占资源太多或者发生太多的错误,系统日志就会提示:“应用程序池 'User_pooll' 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误, 或者提示:应用程序池 'User_pooll' 超过了其作业限制设置。
有关更多信息,请参阅微软官方 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

这时,访问这个网站就会提示:Service Unavailable。
一般系统会在30秒左右恢复正常,多刷新几次就能正常访问了。但是这个时间恢复后因为访问量太大在极短的时间网站又不能上了。
另外,如果网站当前访问人数过多,超过了系统的iis连接数(或CPU峰值)限制,也会出现Service Unavailable的提示(win2k主机下出现连接过多就会提示:连接过多,请稍后再试;而win2003的主机刚直接提示:Service Unavailable)如果经常出现类似的错误,请及时优化网站程序,或者升级你的主机至更高的款型,以获得更多的系统资源。

网站超CPU的四种可能原因:
一.网站攻击
二.程序设计不合理,资源占用高,或本身在做占资源的操作,如采集
三.访问量过大
四.有搜索蜘蛛收录

程序占用资源太多的原因:
有一个或多个ACCESS数据库在多次读写过程中损坏,微软的MDAC系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其他线程只能等待,IIS被死锁了,全部的CPU时间都消耗在DLLHOST(ASP进程)中。 参考解决办法: 压缩和修复我的数据库 下载数据库文件--[如果是.asp的扩展名,请改为.mdb的扩展名]--用ACCESS打开--选择工具--数据库实用工具--压缩和修复数据库--[改回.asp的扩展名]--上传覆盖原来数据库文件
注册了不良的Com组件,特别是用VB开发的ACTIVE X控件,可能导致占用内存使用量不断增长 参考解决办法:尽量减少或避免非官方或是客户要求的不必要的组件
多媒体等文件下载占用服务器带宽 参考解决办法:停止下载
程序问题 需要及时的关闭不再使用的数据库,以避免一直占用服务器资源 在conn.asp 连接数据库字符串语句中加入如下 sub endConnection() conn.close set conn=nothing end sub 其它程序问题:把IE选项里 显示友好HTTP错误信息 的勾取消掉,再访问网站看出现什么错误信息,然后再调试
上传重要的数据库等文件更新,由于正处于受访问状态,可能导致瞬间占用率上升 一般此情况较少,若有出现此情况时,可能有必要先暂停站点,再作更新
ACCESS论坛(如动W)大了以后就很容易出现数据库方面的问题,当你的论坛数据库在30M以上,帖子5万左右,可能就会出现数据库吃不消的情况
建议取消程序中使用的on error resume next这个容错语句,对错误进行调试。 临时解决办法:定期删除多余的数据、压缩数据库,限制论坛灌水,甚至限制论坛注册。如果是ASP论坛,可以使用分表储存功能,会有较好的效果 比较长远办法:更换论坛和数据库,一般都采用商业版本+MSSQL 的方案来解决
参考技术A 首先我们得弄明白什么是503错误;503是一种HTTP状态码。英文名503 Service Unavailable与404(404 Service Unavailable)是同属一种网页状态出错码。前者是服务器出错的一种返回状态,后者是网页程序没有相关结果后返回的一种状态,需要优化网站的时候通常须要制作404出错页已便网站整体优化。由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。如果能够预计延迟时间,那么响应中可以包含一个 Retry-After起头用以标明这个延迟时间。如果没有给出这个 Retry-After信息,那么客户端应当以处理500(Server Internal Error)响应的方式处理它。 503
  注意:503状态码的存在并不意味着服务器在过载的时候必须使用它。某些服务器只不过是希望拒绝客户端的连接。
  其次要弄明白503产生的原因;造成503错误主要有以下几种情况,
1、网络管理员可能关闭应用程序池以执行维护。
2、当请求到达时应用程序池队列已满。
3、应用程序池标识没有使用预定义账户:网络服务,而自己配置了标识,但是配置的这个用户不属于IIS_WPG组,
4、应用程序池启用了CPU监视,并且设置了CPU利用率超过一定百分比关闭应用程序池,而开发人员写的服务端页面(.asp,.aspx)执行效率不高,会引起CPU的长时间占用,最终达到设置的百分比,从而引起应用程序池关闭
参考技术B 网站在打开的时候,出现“Service Unavailable”的提示,由于使用的服务器的系统是Windows 2003,此系统在系统资源不足的时候,并不会像Windows 2000系统那样,提示“同时在线人数过多,而是提示“Service Unavailable”.
出现“Service Unavailable”的提示,一般,系统会在30秒内重启IIS,释放进程,一般,在60秒内能够恢复正常.大家遇到“Service Unavailable”的提示后,一般刷新2~3次就可以正常访问.

以上是关于503 service unavailable是啥意思?怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

Jetty 显示 http 错误消息 503 SERVICE_UNAVAILABLE

(a)Smack 在 login() 处返回“service-unavailable (503)”错误

503 Service Temporarily Unavailable

WIN7 + IIS7 Service Unavailable HTTP Error 503. The service is unavailable.

WSGISocketPrefix 无法解决 503 Service Temporarily Unavailable 错误

Foreach 函数给出 503 Service Unavailable