参考答案
一、网站访问慢的因素
1. 服务器出口带宽不够用
- 本身服务器购买的出口带宽比较小。一旦并发量大的话,就会造成分给每个用户的出口带宽就小,访问速度自然就会慢。
- 跨运营商网络导致带宽缩减。例如,公司网站放在电信的网络上,那么客户这边对接是长城宽带或联通,这也可能导致带宽的缩减。
2. 服务器负载过大,导致响应不过来
从两个方面入手分析:
- 分析系统负载,使用 w 命令或者 uptime 命令查看系统负载。如果负载很高,则使用 top 命令查看 CPU ,MEM 等占用情况,要么是 CPU 繁忙,要么是内存不够。
- 如果这二者都正常,再去使用 sar 命令分析网卡流量,分析是不是遭到了攻击。一旦分析出问题的原因,采取对应的措施解决,如决定要不要杀死一些进程,或者禁止一些访问等。
3. 数据库瓶颈
- 如果慢查询比较多。那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
- 如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等。然后,也可以搭建 MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4. 网站开发代码没有优化好
例如,SQL 语句没有优化,导致数据库读写相当耗时。
二、网站访问慢的排查方法
1. 先确定是用户端、还是服务端的问题。
- 一定要从源头开始,逐步逐步往下。
- 当接到用户反馈访问慢,先自行立即访问网站查看,如果自己访问快,初步断定是用户端问题,就需要耐心跟客户解释,协助客户解决问题。
- 如果自己访问速度也很慢,可以利用浏览器的调试功能,查看加载的哪一项数据消耗时间太多,是图片加载慢、或某些数据加载慢。
2. 针对服务器负载情况。
查看服务器硬件(网络、CPU、内存)的消耗情况。
如果是购买的云主机,例如阿里云,可以登录阿里云平台提供各方面的监控(CPU、内存、带宽的使用情况)。
3. 如果发现硬件资源消耗都不高,那么就需要通过查日志。
比如看看 MySQL慢查询的日志,看看是不是某条 SQL 语句查询慢,导致网站访问慢。
三、网站访问慢的解决方法
1. 如果是出口带宽问题,那么久申请加大出口带宽。
2. 如果慢查询比较多,那么就要开发人员或 DBA 协助进行 SQL 语句的优化。
3. 如果数据库响应慢,考虑可以加一个数据库缓存,如 Redis 等等。然后也可以搭建MySQL 主从,一台 MySQL 服务器负责写,其他几台从数据库负责读。
4. 申请购买 CDN 服务,加载用户的访问。
5. 如果访问还比较慢,那就需要从整体架构上进行优化咯。做到专角色专用,多台服务器提供同一个服务。
以上,是【如果用户反馈网站访问慢,该如何处理】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—