什么是QPS?
每秒的响应请求数,也即是最大吞吐能力
QPS = 总请求数 / ( 进程总数 * 请求时间 )
什么是PV?
page view
即页面浏览量,或点击量;通常是衡量一个媒体频道或网站甚至一条网络文章的主要指标。
什么是UV?
uv的全称是unique view,译为通过互联网访问、浏览这个网页的自然人,访问网站的一台电脑客户端被视为一个访客,在同一天内相同的客户端只被计算一次。
如果网站每天要承受100万次PV,那么它需要多少的QPS?
1000000 * 0.8(峰值QPS,意思是每天80%的访问量集中在20%的时间里)/ 86400(每天的秒数)* 20%(每天的20%时间) = 46 QPS
如果网站单台服务器QPS为10,那么需要几台机器?
46 / 10 = 4.6 ≈ 5
需要5台
QPS是否等于并发数?
不等于,两者没有什么关联
QPS是指这个网站每秒有多少次请求
并发是指这个网站有多少个用户在同时请求
如果一个用户一秒钟请求了20次,那么这个网站的QPS就是20,并发数1。
如果20个用户在一秒钟内同时每人请求了一次,那么这个网站的QPS就是20,并发数也为20。
一个服务器不仅要提高QPS的吞吐量,同时要提高承受的并发数
如何从整体上处理高并发
可以从多个层面上去回答:
-
数据库方面
1.优化数据库索引
2.优化查询语句,尽量避免全表查询以及间隙锁的出现
3.搭建数据库集群,通过主从复制实现读写分离
4.可以使用mycat等中间件进行分库分表。 -
使用nginx进行负载均衡
-
使用CDN服务器分发请求
-
架构方面
1.前后端分离,页面静态化
2.使用专门的图片服务器
3.合理使用缓存,搭建如redis集群之类的缓存服务器,既要合理的多加利用缓存服务器,又要合理避免缓存雪崩,缓存穿透之类的危险。 -
后端代码方面
压力比较大的接口和业务代码可以采用异步多线程的方式编写,提高效率。在处理可以预见的超大集合时同样可以采用并行流提高遍历的效率。
优化代码结构。有时合理使用设计模式也能提高代码执行效率。
来源:CSDN
作者:我是大火球请搓我吧
链接:https://blog.csdn.net/chouyiqiong5655/article/details/104229243