zoukankan      html  css  js  c++  java
  • 一直在说高并发,多少QPS才算高并发?

    高并发的四个角度

    只说并发不提高可用就是耍流氓。可以从四个角度讨论这个问题。

    首先是无状态前端机器不足以承载请求流量,需要进行水平扩展,一般QPS是千级。 然后是关系型数据库无法承载读取或写入峰值,需要数据库横向扩展或引入nosql,一般是千到万级。 之后是单机nosql无法承载,需要nosql横向扩展,一般是十万到百万QPS。 最后是难以单纯横向扩展nosql,比如微博就引入多级缓存架构,这种架构一般可以应对百万到千万对nosql的访问QPS。 当然面向用户的接口请求一般到不了这个量级,QPS递增大多是由于读放大造成的压力,单也属于高并发架构考虑的范畴。

    PV和QPS

    比如微博每天1亿多pv的系统一般也就1500QPS,5000QPS峰值。

    比如有人说:

    • 2C4G机器单机一般1000QPS。
    • 8C8G机器单机可承受7000QPS。

    要多久才能处理完这些请求

    首先需要明确两个基本点:

    1、处理每个请求需要耗费时间,哪怕时间很短

    2、服务资源是有限的,不能一次性处理全部请求

    假定总并发请求数量为10000,每个请求的处理时间为t秒,服务器一次性可以处理的请求数量为n个,那么处理完所有的请求需要用时为T

    T = (10000 / n ) * t

    由此可知,如果一次性可以处理10000个请求,那么总耗时只需要t秒

    写在后面

    具体多少QPS跟业务强相关,只读接口读缓存,将压力给到缓存单机3000+没问题,写请求1000+也正常,也复杂些可能也就几百+QPS。

    所以QPS和业务场景和设计相关性很大,比如可以通过浏览器本地缓存,用缓存做热点数据查询,写事务MQ异步处理等方式提升QPS。

    转载于:https://my.oschina.net/u/1000241/blog/3065185

  • 相关阅读:
    160912、工具类:spring+springmvc自定义编码转换
    160909、Filter多方式拦截、禁用IE图片缓存、Filter设置字符编码
    160908、前端开发框架Semantic UI
    160907、CSS 预处理器-Less
    160906、Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
    160905、c3p0详细配置
    160902、Ionic、Angularjs、Cordova搭建Android开发环境
    160901、在大型项目中组织CSS
    160831、过滤器和拦截器的区别
    (转)Uiautomator——API详解
  • 原文地址:https://www.cnblogs.com/Tanwheey/p/14464658.html
Copyright © 2011-2022 走看看