我原来的一个学生今天给我打电话说他们网站访问的时候特别慢,让我帮他分析一下缘由。原来也有一些朋友问过我相似的问题,今天晚上特地写了这篇文章跟你们分享,但愿对你们有所帮助。假如你是运维人员你会如何作?缘由大概有几个方面呢?若是你已经有必定的运维经验了,但愿你可以先本身想一下,看一下本身想到的有哪些方面,而后再日后看,这对你总结问题会颇有帮助奥。我总结大概有几个方面:nginx
第一个方面,网络问题。网络问题可能细分为几种,1. 用户自己的网络慢,好比有的用户为了省钱会在一些小运营商那里拉宽带,其实贱钱无好货在这里也是适应的。这些小运营商为了省钱,他们的带宽通常都比较差,甚至是外省的资源。有得朋友明明在北京上网,ip138却显示你是天津的ip就是这个缘由。最简单的判断方法就是你去tracert一个比较大网站,好比www.so.com看一下有多少跳,通常状况下在10跳左右若是比这个大不少就多是这个问题了。服务器
第二个方面是跨运营商的问题。好比用户的网络是电信,而大家服务器放在联通机房。你们都知道中国的运营商之间的网络联通状况是比较糟糕的,一旦出现这种跨运营商访问的时候就很是容易出问题,这时候能够选择把服务器放到双线或者多线机房里来解决问题。网络
第三个方面,劫持问题。这种状况必须有必定的运维经验的人才会了解。通常状况下一些小得运营商,特别是移动常常会出现这个状况。前段时间咱们360软件管家的运营部门联系我说有几个某省移动网的用户在用软件管家时出现白屏的状况,让我协助他们分析一下缘由。我在联系用户得到相应的信息,分析以后发如今用户端访问咱们域名时解析出来的ip是错的,根本不是咱们服务器的ip。很显然这是移动劫持了咱们软件管家用得某些域名。其实劫持有好几种,这只是其中一种,等我有时间再专门针对劫持跟你们作一次分享。运维
第四个方面,服务器负载过大。首先根据报警系统,好比收到的手机短信来判断是提供服务的全部节点都有报警仍是个别节点有报警。若是是大面积的报警多是大家的业务受到了***或者是最近一版的网站代码有bug。这时你能够去服务器上面用netstat等命令来看一下服务器的tcp链接状况。假如链接数并非太多,好比大家用的是nginx,通常状况在用户量不是太大的状况下,几百个或者一千甚至几千的链接数都是正常,这个你要根据大家实际的业务来判断。若是跟正常的链接数差很少但访问特别慢得话,多是程序代码有问题,这时候要及时联系开发一块儿来分析问题的缘由;好比用strace来跟踪nginx进程看一下具体的缘由。假若有大量的tcp链接(通常都会上万),而且状态为SYN_RECV的特别多,恭喜你,你的服务器极可能是受到***了。有过相似经历的朋友可能会说在服务器遭到这个规模的sync***时netstat根本就没响应,甚至把一个cpu打满。别急,这里有一个比较时髦的命令ss,这个时候你用 ss加上at参数能够很快把tcp的链接状况显示出来。 而后就能够用我原来写得iptables文章中得防DDOS的脚原本阻止这些ip的访问就ok了。若是是个别服务器响应慢得话就得具体分析了。这个我会专门写个如何判断服务器负载大的文章来专门分析这个状况。暂时想到的就这么多,你们有想到的能够再告诉我,我再补充,你们一块儿提升。不早了,睡觉了,明天还得上班呢....tcp
对了你们以为若是对本身还有那么一点点帮助的,但愿你们多点赞,多评论,感谢!!!你们能够加入运维交流群:325525293 来一块儿交流。ide