一、前言
网站打开慢这个问题,算是老生常谈了,在实际的生产的环境中,我们会经常遇到这样的问题。作为一个运维工程师,我们该从哪些角度去分析问题,判断问题,并最终解决问题。那么首先我会从几个方面分析这个问题,也许可能有纰漏或者说得不是很准确,大家借鉴就好,仅做参考。
二、分析可能的原因
2.1 网络带宽,这是一个很常见的瓶颈。
2.2 cpu、硬盘、内存配置过低,服务器负载不起来。
2.3 网站的开发代码不够完善,例如mysql语句没有进行优化,导致数据库的读写相当耗费时间。
2.4 数据库的瓶颈。当我们的数据库的数据变得越来越多的时候,那么对于数据库的读写压力肯定会变大。
IIS7网站监控工具可以做到提前预防各类网站劫持,并且是免费在线查询,通过查询知道域名是否健康等等。
它可以做到24小时定时监控:
2、网站是否被劫持
3、域名是否被墙
4、DNS是否被污染
5、独家检测网站真实的完全打开时间
三、针对上面的可能的原因,有哪些方法和工具可以定位检测
1、首先根据用户反馈的问题,自己也打开下网站,看是否会出现用户反映的问题。如果没有,则有可能是用户的问题,如果有那就有可能是服务器或网站的问题。
总之,一句话,排查是用户的问题还是服务器或网站的问题。
2、发现是服务器或网站的问题,根据浏览器自带的调试功能,调试网络查看各种数据的加载速度,可以看到每块数据的速度。
这里分三种情况:
a) 打开图片过慢
b) ****打开html静态页面过慢
c) ****打开php或java程序过慢
判断方法:
一般网站分前端和后端,这里以我们公司为例,网站web服务架构前端nginx+后端tomcat,前端处理静态页面请求,后端处理动态页面请求。****可以在前端nginx插入一个html页面,看访问是否正常。或在后端tomcat插入一个jsp文件,看访问是否正常。这样可以很好的判断是前端nginx还是后端的tomcat出现故障。
3、检查服务器硬件或网络的负载情况,例如硬盘、内存、cpu、带宽等。最好做个监控,能及时响应问题,及时处理,这对运维人员很关键。
4、如果硬件或网络带宽都正常,这个时候需要查看一下nginx、tomcat、数据库的错误日志,观察数据库的慢查询日志等。分析是否有语句查询过慢,需要优化等。
四、解决或优化的方法
1、带宽的问题,增加带宽就好。
2、Mysql语句优化的问题,需要开发人员的配合。
3、数据库太庞大,拆库或拆表。
4、数据库做高性能方案,比如多实例,或读写分离。
5、配置缓存数据库。
6、配置CDN。
7、从整个网站架构上考虑,是否搭建web集群等高并发方案,从整体架构上去优化。