【运维面试】面试官:你觉得网站访问慢的原因有哪些?

前言

网站访问慢的原因是面试官最喜欢问的问题,这种问题并没有标准答案,你随便说几个原因即可,哪怕原因很离谱都没关系。

问这个问题的面试官,有一种情况是因为公司遇到了网站访问慢的问题,他们在解决这个问题的时候花了不少时间,所以印象深刻,想问问你有没有遇到过。 另一种情况就是觉得运维肯定是维护网站,维护网站应该会遇到网站访问慢的问题,于是随口就问了,答案不重要,重要的是你回答问题的坚定程度。

回答问题的思路

1. 先说排查思路

网站访问慢,但我们可以访问的情况下,使用f12打开调试模式查看网络状态,看看是哪些网页或者链接加载的速度慢,根据这些页面和链接查看数据的流向来判断每一层架构是否正常,然后根据具体的架构去调试。

另外我们也需要查看服务器端,线上服务器的情况,比如cpu负载,内存负载,网络带宽等是否过载。 查看数据库日志文件,慢查询日志等,分析造成数据库访问慢的原因。

当然必要情况下我们也需要查看程序日志,比如nginx,tomcat日志,找出报错原因,并协调开发一起查看是否是程序代码出现了问题。

2. 再说可能造成访问慢的原因

我总结了下,造成网站访问慢有这么几个原因:

  1. 服务器负载过大忙不过来,无法承担巨大的流量。

  2. DNS解析慢

  3. 访问量过载

  4. 网站代码繁琐

  5. 站点存在大量的JS或者图片的调用

  6. 服务器出口带宽不够用。

  7. 数据库的瓶颈,数据库文件过大,造成读取缓慢,没有建立索引,造成每次查询都对数据库进行全局查询。

  8. 没有设置CDN。

  9. 、可能遭受到了分布式拒绝攻击即DDOS攻击或者中病毒木马。

  10. 死链:死链接是指残留的网站中不存在的页面,即网站改变前的页面,改动后删除此页面,但是搜索引擎已经收录了,这样的页面称为死链接,用户通过死链接访问是会出现打不开的现象(就是那些你点开出现404页面的页面)

3. 怎么优化网站打开速度

回答范例: 解决方案的话,针对不同的情况,有不同的方案,比如:

1.查看线上服务器的负载情况,CPU负载,内存负载,网络带宽,查看是否已经过载。

2.查看网络连接情况,是否受到DDOS攻击,消耗尽带宽资源,造成无法提供服务。

3.查看MySQL数据库的日志文件,查看mysql慢查询日志,查看造成MySQL访问过慢的原因。

4.可以查看应用程序的日志,如Apache,nginx,PHP,Tomcat日志文件,找出报错原因,查看是否是代码问题。

5.精简代码 (比如一些常见的死循环,数据库死锁等)

6.优化缓存

7.图片压缩(网站首页出现的图片,在加载过程中很耗时,首页越小越好)
8. 尽量不要放视频和flash,除非你是视频网站。

总结

有时候网站被攻击也会出现访问速度慢,比如DDOS攻击,但小网站出现攻击也不怕,比如我的wordpress这两天就有人在攻击,虽然不是量比较小,但是觉得他的攻击毫无价值,实在不行网站送你,一个个人站又不值钱。

我做了哪些操作:

  1. 写脚本发现持续访问的IP,量比较大的就屏蔽
  2. 把root用户禁止登陆,使用普通用户+超30位密码登陆
  3. 数据实时备份,并开启一个副站,一旦主站宕机随时启动副站运行

如果真被攻破了怎么办? 哈,一旦有用户登录系统,会发系统邮件给当前用户,拿出十足的诚意一起合作,反正闲着也是闲着,不如合作赚点钱啊。要不你要个破网站干啥,又没多少访问量

猜你喜欢

转载自blog.csdn.net/xinshuzhan/article/details/108446576