1.当用户访问网站是很慢有哪些原因?
问题场景:某个用户向你反映说开发的网站访问速度很慢,但是该用户访问其他问题很正常,分析下,有哪些工具分析原因、怎么解决问题? 一.针对这个题目我们可以简单理解成是server端出现的问题,而不是client端出现了问题(用户网络不好包括域名服务器解析等可能) (1)可能的原因1:服务器 出口带宽不够用这是一个很常见的瓶颈。一方面,可能是本身购买的服务器出口带宽就很小(企业购买带宽相当昂贵),一旦用户访问量上来了,并发量大了,自然均分给用户的出口带宽就更小了,所以某些用户的访问速度就会下降很多的。另一个,就是跨运营商网络导致带宽缩减,例如很多公司的网站(服务器)是放在电信的网络上的,而如果用户这边对接的是联通的宽带,运营商之间网络传输在对接时会有限制的,这就可能导致带宽的缩减。 (2)可能原因2:服务器负载过大忙不过来,比如说CPU和内存消耗完了 (3)可能原因3:网站的开发代码没写好**,例如MySQL语句没有进行优化,导致数据库的读写相当耗费时间。 (4)可能原因4:数据库太大,访问不方便当我们的数据库变得愈发庞大,比如好多G好多T这么大,那对于数据库的读写就会变得相当缓慢了,索引优化固然能提升一些效率,但数据库已经如此庞大的话,如果每次查询都对这么大的数据进行全局查询,自然会很慢 (5)可能原因5:访问外网
二.针对上面可能的原因,有哪些方法和工具去检测呢:
1 首先确定是用户的问题还是自身的。首先打开下网站,看是否会出现用户反映的情况,如果你这边访问没问题,那就可能是用户那边的问题了。 2. 发现确实是用户服务器或者网站的问题 ,那么可以利用浏览器的调试功能(一般浏览器都会有),调试网络看看各种数据加载的速度,哪一项消耗了多少时间都可以看到,是哪块数据耗时过多,是图片加载太慢,还是某些数据加载老半天都查不出来。 3. 针对服务器的负载情况,可以先去查看服务器硬件(网络带宽、CPU、内存)的消耗情况 4.带宽方面查看流量监控是不是已经到了峰值. 三.针对上面说到的这些问题,有哪些解决和优化的办法: (1)出口带宽的问题,加带宽。 (2)mysql语句优化,开发人员职责; (3)数据库太庞大,为了读写速度,进行“拆表”、“拆库”,就是把数据表或者数据库进行拆分。 (4)上面的拆库拆表都是针对数据库实在太庞大才会这样做,一般在此之前会有其他优化方法,比如mysql的主从复制,一台主服务器专门用于写,然后其他服务器用来读,写完之后会同步更新到其他读的服务器中。例如阿里的双十一活动,都不知道用了多少万台服务器一起在扛着。