当我们发现网页/应用访问突然变慢,我们可以从几方面来定位问题:
- 看看是一个用户的问题?还是一群用户的问题?或是全部用户的问题?
- 看看是前端问题?还是后端问题?
- 看看是数据库问题?还是接口问题?或是服务器问题?
如果是一个用户的问题,可以考虑是否是该用户的网络问题,或者我们的服务器有没有对当前用户的IP进行了限流或拦截。如果是固定某一群用户的问题,可以考虑是否是某个电信运营商的问题,或者我们某个的机房的问题。如果是全部用户的问题,可以考虑是前端问题,还是后端问题。
对于是前端问题还是后端问题的定位,在定位问题之前,我们可以打开浏览器和服务器的调试模式,以查看网页/应用的执行情况。
如果是前端问题,你可以看看html、css、JS等静态资源是否加载正常,所用时间是否特别长。如果是后端问题,你可以看看是否是数据库问题,接口问题,或服务器问题。
看看每一条SQL的执行情况,看看有没有慢查询。看看请求外部接口是否正常,看看有没有超时的情况。看看CPU、内存、磁盘的使用情况,看看是否存在内存溢出。看看请求来源ip,看看是否存在DDoS攻击。
总之,要尽早发现问题,最好是提前在可能出现问题的地方增加日志和监控。让机器,而不是人工来发现问题。