很多人都遇到过Service Unavailable的情况,往往会手足无措。其实原因很简单的:
Service Unavailable的出现一般是资源不足,如IIS、CPU或内存等。
如果虚拟主机不限制IIS,则可以排除IIS不足。
如果服务器操作系统为windows2003,则有个很关键的东西就是“应用程序池”
一般情况下30-50个站共用一个程序池,这个程序池可以简单理解为资源库,即这30-50个站共用这块资源。比如可以限定一个程序池的CPU占用为60%,内存使用为200M。
如果这个资源被其中一个站用完,则程序池就会停止,所有使用这个程序池的站就会出现“Service Unavailable”资源不足的提示,直到该程序池被重新启动。
大多数情况下,60%的CPU和200M内存完全足够使用;如果出现垃圾程序或遇到攻击,则可能出现CPU急速上升或内存大量使用,这个绝对是部分“Service Unavailable”出现的原因。从目前我们监测的情况看,大部分是CPU占用在90%-100%之间出现的。