网站打不开或者响应慢排查思路浅谈

网站打不开或者响应慢排查思路浅谈

问题描述:

做运维的童鞋,面试时经常会被问的问题就是如果网站打不开或者响应慢,你该怎么办?这个问题我也曾遇到过,当时思路有但是表述起来可能就差点意思,所以现在把我的思路写出来供大家参考下,如有不足之处请指出。下面将按照网站访问的流程对所有可能原因进行分析。

原因分析:

1.网络带宽问题

这可能是大部分人遇到网站打不开第一个想到的点,而这个也切实是网站打不开最可能的原因。如果是自建网站,公司内带宽往往是整个系统的瓶颈。小公司没有太多的财力用于网络建设,即使是使用阿里云这样的公有云,大部分初创公司都会选择按流量计费的模式,此模式下阿里云所允许的最大峰值带宽也只有100mbps。

 

2.DNS服务

当我们输入网址后浏览器第一步就是进行DNS解析,所以DNS服务器是否正常,直接影响网址访问。可以通过ping命令查看DNS解析是否正常或有网络延时。

 

3.负载均衡服务

大部分网站都会架设负载均衡服务器以缓解后端服务压力,整个网站架构中可能会有很多负载均衡服务器。主流的负载均衡有lvs,nginx,haproxy等。由于大部分流量都要先经过负载均衡,对于负载均衡的最大连接数,并发性能要求更高,所以负载均衡服务器的处理性能至关重要。生产环境中,会搭建负载均衡集群来承担访问压力。

 

4.CDN服务

如果网址用户分布广泛,会采用CDN服务加速网站访问。如果此时出现某个节点故障,可能就会导致某个地域的人群无法访问的情况。

 

5.后端服务器

如果前面都没啥问题,那就要考虑真正的后端服务器问题。包括lnmp环境、cpu、内存、最大连接数、并发数、磁盘IO性能、数据库IO性能、数据库是否有慢查询语句等等,根据性能瓶颈提出合适的解决方案。通常浏览器无法访问会返回错误代码,4xx一般为服务正常启动但是网页丢失,需要核实用户浏览的网页是否存在,5xx一般为服务未正常启动,需要检查nginx等服务是否正常启动。可以直接curl+IP测试后端服务器是否正常。

 

6.网络攻击

网络攻击,像流行的DDOS攻击,syn洪水攻击,cc攻击等,都会大量占用socket连接数导致服务无法访问。而有的会在你的服务器上植入恶意程序,攻击其他服务器,这样其他服务器如果做了安全防护,就会导致本公司内所有主机(大部分公司内部共享一个外网IP)无法访问某个网址的情况。所以做好安全防护是运维必不可少的技能。做用户权限控制,操作审计,及时修复漏洞,不使用简单密钥,关闭非必要服务及端口,开启防火墙,定期检查22端口屏蔽非法IP等等。安全永远是相对的,我们能做的就是最大限度的预防安全事故的发生,当真的发生安全事故时能及时恢复服务,将损失最小化。

hcwei