Slow 的类型 Slow不一定会出现503, 但是出现503一定会造成Slow
需要纠正一个问题, 面对slow的站点, 需要做的第一件事情就是, 从放网站的server端开始检查.
server端需要检查的项目:
1> CPU , server的CPU使用情况怎么样? 如果CPU一直很高也会影响网站的运行;
2> 同一台server的其他的站点的访问速度怎么样, 是不是也很慢
Server CPU 的问题: 如果server当前的CPU较高, 那么对于请求的处理速度就会减慢,这时应该去考虑重启IIS, 或者检查到是什么原因导致的CPU 飙高.
1) 整个网站的所有页面在所有的location打开都是很慢的, 也就在我们本地和客户的本地打开都是一样的慢.
这样, 应该是加载的很慢, 可以尝试使用firebug去查看客户的site 加载了一些什么东西, 很可能是有大量的图片或者其他的媒体文件; 针对这种类型的客户, 解决方案是建议他去优化一下自己的站点, 可以参考下面的链接:
https://developers.google.com/speed/
2) 第一次打开网站的时候, 特别的慢, 但是接下来打开的时候快了, 这是因为asp.net的站点没有足够的visitor导致的, 所以initial load 就比较慢. 针对这样的网站, 可以使用schedule Task 去定时的run 一下;
3) 某些类型的网站, 如客户经常自己安装theme和plugin的wordpress, 还有nopcommerce站点, 这样的网站通常情况下都比较消耗内存, 对于这样的客户, 我们的处理策略是帮他找出导致网站慢的plugin , theme , 然后建议其去disable. 如果他还是需要使用, 那么建议他升级.
4) 与database 相关的, 比如客户的网站代码里面有需要执行的较为复杂的SQL query, 这样可能就会耗费大量的时间, 这种情况如何检查到, 有待于补充; 这一个情况怎么排查呢, 客户的网站里面有一些静态的页面, 也有一些动态的页面. 当您打开需要登录或者需要存储数据的与数据库操作相关的页面很慢的时候,你就可以向这方面考虑了;
5) 客户的网站只是某些页面慢, 某些不慢, 那么针对慢的页面进行debug. 看一下load的都是些什么内容;
6) 客户的网站在某些locations慢, 但是在某些locations不慢, 那么建议使用CDN , 这样可以让各地都去寻找在ISP sever里面缓存的资源, 加快下载的速度, 这个一般是和访问者所处的网络有关系的;
7) 客户访问慢, 我们打开不慢, 那么我们需要客户去tracert一下, 把结果提供给我们检查一下, 如果客户trancert 发现在某些路由节点的时间过长, 那么我们可以建议他去打开CDN, 如果他tracert 的结果是正常的, 那么要进一步去帮他查看;
9) 打开网站的时候直接出现503 错误, 那么需要检查,
9.1) pool info, 是不是pool最近被频繁的回收, 回收也是有两种原因的: 第一是pool不活跃, 所以被recycle, 第二是某些应用程序导致pool被频繁的回收; 这时可以考虑给客户换一个pool试一下. 如果还是出现类的的问题, 如果是客户的某些程序导致的,那么建议就是加大ram, 或者是弄一个dedicated pool 给他;
9.2) memory 的问题 : 满了 升级
9.3) 一般的hosting 对IIS 连接数都是有限制的, 默认是200, 有时候网站申请的IIS 同时连连接数过于多的话, 那么打开就会出现503, 可能刷新一下又可以了. 这时可以考虑适当增加一些IIS连接数试一下(AP--->host settings --->connections) , 或者直接升级主机到拥有更多资源;
需要注意一点, 网站自定义错误信息只能在IIS正常工作的情况下显示, 如果连IIS都有问题, 那么怎么可能会去显示IIS定义的错误呢. 所以, 检查一个网站的第一点: IIS 是不是正常工作的; 所以503 就是因为请求不到IIS, 这也是为什么对error 503设置自定义错误页面没有意义的原因;