网站反应慢?如何排查?

这个问题相信很多人都遇到了,那么我们遇到问题的基本解决方案就是,排查问题 ===> 解决问题 ===> 问题总结。先确定时客户端还是服务端问题,再逐步判断。

针对网站反应慢,怎么去排查?

1、首先要确定是用户端还是服务端的问题。当接到用户反馈访问慢,那边自己立即访问网站看看,如果自己这边访问快,基本断定是用户端问题,从客户端进行问题排查。

不要上来就看服务端的问题。一定要从源头开始,逐步逐步往下。

2、如果访问也慢,那么可以利用浏览器的调试功能,看看加载那一项数据消耗时间过多,是图片加载慢,还是某些数据加载慢。

3、针对服务器负载情况。查看服务器硬件(网络、CPU、内存)的消耗情况。如果是购买的云主机,比如阿里云,可以登录阿里云平台提供各方面的监控,比如 CPU、内存、带宽的使用情况。

4、如果发现硬件资源消耗都不高,那么就需要通过查日志,比如看看 MySQL 慢查询的日志,看看是不是某条 SQL 语句查询慢,导致网站访问慢。

那么如何去解决呢?

1、如果是出口带宽问题,那么就申请加大出口带宽。

2、如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。

3、如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建 MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。

4、申请购买 CDN 服务,加载用户的访问。

5、如果访问还比较慢,那就需要从整体架构上进行优化咯,做到集群部署,服务之间的负载均衡,避免一个服务器访问压力过大。

具体几种因素导致网站访问慢的总结

1、服务器出口带宽不够用,本身服务器购买的出口带宽比较小。

一旦并发量大的话,就会造成分给每个用户的出口带宽就小,访问速度自然就会慢。跨运营商网络导致带宽缩减。例如,公司网站放在电信的网络上,那么客户这边对接是长城宽带或联通,这也可能导致带宽的缩减。

2、服务器负载过大,导致响应不过来

可以从两个方面入手分析:分析系统负载,使用 w 命令或者 uptime 命令查看系统负载。如果负载很高,则使用 top 命令查看 CPU ,MEM 等占用情况,要么是 CPU 繁忙,要么是内存不够。如果这二者都正常,再去使用 sar 命令分析网卡流量,分析是不是遭到了攻击。一旦分析出问题的原因,采取对应的措施解决,如决定要不要杀死一些进程,或者禁止一些访问等。

3、数据库瓶颈

如果慢查询比较多。那么就要开发人员或 DBA 协助进行 SQL 语句的优化。如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等。然后,也可以搭建 MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。

4、网站开发代码没有优化好

例如 SQL 语句没有优化,导致数据库读写相当耗时。

你可能感兴趣的:(数据结构,golang,后端,算法,java)