|
1. 通常我们可以把网站访问时期分为三个区间,日常运行区间、高峰区间、负载过重区间,导致网站加载缓慢的原因究竟有哪些呢?
答:我觉得日常运行期间一般来说不会出现,这里说的是通常情况。高峰区间出现缓慢或者无响应是常见的,高并发大量的IO和数据交换以及网络质量都会导致加载过慢。负载过重区间是高分区间的延伸。在高峰区间上继续增加访问量使得系统和硬件超负荷运行加剧了网站缓慢。
2. 假如我们把响应时间和并发用户量看成一个二维的坐标图,那么随着并发用户量的增加,响应时间是否会一直增加?在这三个区间里,哪个区间增加的幅度最快?为什么?
答:在没有达到系统承载的拐点的时候,这个访问量的增加几乎对响应时间无影响。所以响应时间不一定会增加。在高峰区间这个增加比较明显,在负载过重的情况下,因为已经产生了巨大延时,所以这个也不是很明显了。
3. 假如我们把吐吞量与并发用户量看成一个二维的坐标图,同样在网站的日常运行区间、高峰区间、负载过重区间里,随着并发用户量的增加,吞吐量是否会持续增加?为什么?
答:我觉得在前两个区域会随着并发量增加而增加,高峰区间达到最大。到了负载过重区间应该不会增加,因为系统根本没有资源给来让排队的并发请求的机会,这些请求并发到不了系统层面,产生的IO请求系统是收不到的。
5. 在网站服务器端响应用户访问请求的数据时,大致有两种主要的方式,即异步请求方式和同步请求方式,请参看附件图片谈谈您觉得这两种方式有什么不同?常见的同步请求方式和异步请求方式有哪些应用场景?12306网站买票、京东淘宝购物时采用了哪种请求方式?
答:两种机制区别是下面的增加了队列机制。同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。比如我们云盘同步就是同步请求。微信我觉得就是异步请求。12306是同步的因为没有选择车票就不能付款。而京东应该算异步的,可以开几个页面选择不同的商品到购物车。
6.大部分网站访问都遵循28原则,即80%的访问请求,最终落在20%的数据上。这20%的热点数据将成为我们主要的缓存数据。目前的缓存有两种,一种是本地缓存,另一种是分布式缓存,像新浪微博采用了哪种缓存?
答:据我所知新浪采用的是基于redis分布式缓存实现。这个算是分布式缓存。 |
|