V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
saintatgod
V2EX  ›  程序员

请教一个关于高并发的问题。

  •  
  •   saintatgod · 2020-12-23 16:56:12 +08:00 · 5379 次点击
    这是一个创建于 1417 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近和人面试,聊起来业务高并发的问题,一个面试者跟我说在之前的业务系统中,单机的 QPS 峰值可以做到几千万,然后好奇的问了一下怎么做,但是感觉面试者并没有把事情说的太明白,对于这么高的并发我在业务中并没有遇到过,所以想请教一下论坛的兄弟,单台服务器是否可以做到几千万的 QPS,假设可以做的话,那么这服务器应该需要什么样子的配置。谢谢。

    48 条回复    2020-12-30 10:45:15 +08:00
    Jooooooooo
        1
    Jooooooooo  
       2020-12-23 17:00:39 +08:00   ❤️ 11
    说这个话的人要么不知道几千万究竟是多少, 要么不知道 QPS 是啥意思.
    maocat
        2
    maocat  
       2020-12-23 17:00:54 +08:00
    单台都可以搭个云了
    GM
        3
    GM  
       2020-12-23 17:12:13 +08:00
    说这个话的人要么不知道几千万究竟是多少, 要么不知道 QPS 是啥意思. +1
    chenqh
        4
    chenqh  
       2020-12-23 17:14:58 +08:00
    我不信,几千万的 QPS
    abersheeran
        5
    abersheeran  
       2020-12-23 17:15:59 +08:00
    他要是用的单机超算,勉强可以解决算力的问题。接下来需要解决网络带宽问题,一个请求、响应平均算 10kb 不过分吧,于是这个单机的带宽就要 1Tbs 。然后说说内存,Linux 内核,一个 TCP 连接大概 15kb 的样子,再加上你还得读数据到内存解析之类的,内存算你 1Tb,真不一定够用。
    YouLMAO
        6
    YouLMAO  
       2020-12-23 17:16:46 +08:00 via Android
    我们广告用了 56 个数据中心的 10 万容器,才 3000 万 QPS,你单台吊打我,桑心
    sagaxu
        7
    sagaxu  
       2020-12-23 17:17:53 +08:00 via Android
    你可能记错了,他说的是几千万字节每秒
    securityCoding
        8
    securityCoding  
       2020-12-23 17:18:08 +08:00
    zengming00
        9
    zengming00  
       2020-12-23 17:18:17 +08:00
    说这个话的人要么不知道几千万究竟是多少, 要么不知道 QPS 是啥意思. +2
    “单机的 QPS 峰值可以做到几千万”,真是太牛了
    sagaxu
        10
    sagaxu  
       2020-12-23 17:19:37 +08:00 via Android
    或者说的是并发长连接,不是请求数,长连接几千万不夸张。C10K 也只是连接数,跟请求数无关。
    cxe2v
        11
    cxe2v  
       2020-12-23 17:20:29 +08:00
    百度 2019 年春晚红包抗住了峰值 13.5M QPS,13.5M 等于 1350 万

    快把这个面试者找来,绑了献给国家,他居然有用一台机器顶一个百度的黑科技
    imbacc
        12
    imbacc  
       2020-12-23 17:21:09 +08:00
    serverless?
    wellsc
        13
    wellsc  
       2020-12-23 17:24:54 +08:00 via iPhone   ❤️ 2
    单机几百 qps 最多了
    janxin
        14
    janxin  
       2020-12-23 17:27:51 +08:00
    他可能并不知道他在说什么
    wysnylc
        15
    wysnylc  
       2020-12-23 17:31:15 +08:00
    一台,指只有一个公网 ip 的机房
    misaka19000
        16
    misaka19000  
       2020-12-23 17:33:41 +08:00
    1. 他不知道他在说什么
    2. 他对几千万的 QPS 没什么概念
    misaka19000
        17
    misaka19000  
       2020-12-23 17:34:25 +08:00
    Redis 这种纯内存的数据库单机也就能跑个 30~50 万的 QPS,他无论如何也不可能用单机搞出几千万的 QPS 的
    wednesdayco
        18
    wednesdayco  
       2020-12-23 17:42:42 +08:00
    怕不是把 pv 跟 qps 搞混了
    goinghugh
        19
    goinghugh  
       2020-12-23 17:44:50 +08:00
    @sagaxu 单机长连接几千万不夸张??
    sampeng
        20
    sampeng  
       2020-12-23 17:48:16 +08:00
    几千万?换我肯定低头看看他应聘的职位,如果只是研发,再见。。。如果是技术总监,应该轮不到我面。。再见。总之就是,听到这一刻,除非你是大厂的超级核心部门研发招聘,直接再见是没有错的。。
    fovecifer
        21
    fovecifer  
       2020-12-23 17:52:37 +08:00
    把万字去掉,对我来说都会有点挑战
    sampeng
        22
    sampeng  
       2020-12-23 17:52:59 +08:00
    不过单机是能做到千万 QPS 的。就是只是 udp 请求。ping 一台机器在内网里应该千万级的能做到。又没说 QPS 一定是 tcp 协议的。
    crclz
        23
    crclz  
       2020-12-23 17:55:27 +08:00   ❤️ 2
    他只不过是 2050 年误入时光机来到 2020 的一个工程师,他只是想找个工作,他有什么错?
    YouLMAO
        24
    YouLMAO  
       2020-12-23 18:01:03 +08:00
    @sampeng ping icmp 怎么可能千万了, 默认的路由器和交换机都限制 ICMP 包 5%带宽, 万兆网卡搞不定
    sagaxu
        25
    sagaxu  
       2020-12-23 18:01:09 +08:00 via Android
    @goinghugh C10K 是 1999 年,C10M 是 2012 年左右,每核支持 1M 连接,32 核扛个几千万应该可行
    huobazi
        26
    huobazi  
       2020-12-23 18:05:19 +08:00   ❤️ 1
    Q: 小伙子,你今年多大了?

    A: 我活了 30 光年了
    yzbythesea
        27
    yzbythesea  
       2020-12-23 18:12:53 +08:00 via iPhone
    几千万,何方神圣?求引见。

    给你一个概念,faang 这种级别的 infra core API 比如 authentication 大概这个级别。都是几百台的 fleet 。
    yzbythesea
        28
    yzbythesea  
       2020-12-23 18:14:20 +08:00 via iPhone
    @sagaxu 长连接几千万,万一那台机器重启了,你系统全宕机了。
    gogogochaogg
        29
    gogogochaogg  
       2020-12-23 18:29:30 +08:00
    @YouLMAO 这个就厉害了,请教下,10w 容器每次版本更新时候这得多久呀,是个什么策略
    Vegetable
        30
    Vegetable  
       2020-12-23 18:37:06 +08:00
    什么业务的峰值需要几千万 QPS ?
    yeqizhang
        31
    yeqizhang  
       2020-12-23 18:41:12 +08:00 via Android
    这都能来水一波,明摆着说的不对,面试不通过即可嘻嘻
    LoNeFong
        32
    LoNeFong  
       2020-12-23 18:51:50 +08:00 via iPhone
    唬住要 50k,唬不住要 5k
    YouLMAO
        33
    YouLMAO  
       2020-12-23 21:12:33 +08:00 via Android
    @gogogochaogg 每周发版的,啥意思?先灰度一台,再灰度一个地区,最后全量 56 个地区
    opengps
        34
    opengps  
       2020-12-23 21:31:00 +08:00
    几千万的 qps ?哪来的这么牛的业务场景。
    我自认为我经历过的 gps 数据收发集群业务算大的了,平均单条 200 字节 tcp 收发,单机器单应用单端口承载 50000 的连接,峰值 qps 尚且 5000,后来为了稳定故意下调了配置承载 2 万连接。
    即使我使用高配置换成多应用监听多端口,那么也不可能无视千兆网卡的约束。提高到几万应该没问题,但是绝对不可能用千万为单位。
    q1angch0u
        35
    q1angch0u  
       2020-12-24 01:03:58 +08:00 via iPhone
    一个接口几千万 qps 还有可能 但是...单台就有点过分了
    laminux29
        36
    laminux29  
       2020-12-24 02:34:07 +08:00
    @sampeng 你知道千万 QPS 的 UDP,每秒是多少数据量嘛?
    inhzus
        37
    inhzus  
       2020-12-24 08:38:47 +08:00 via iPhone
    什么业务都不用,纯 nginx 0b 静态页面距离几千万 qps 都至少差几十倍
    jorneyr
        38
    jorneyr  
       2020-12-24 09:33:18 +08:00
    他们一定掌握了核心科技,例如使用的是量子计算机。
    Leigg
        39
    Leigg  
       2020-12-24 10:11:58 +08:00 via iPhone   ❤️ 1
    不要紧,一个一个问题来问清楚,讲不清楚都是扯淡。首先是什么业务系统?然后目前日活多少?什么语言 /框架搭建的?后端架构是怎样的?这么大 qps 得有数据库集群吧?用的什么数据库?集群多少节点?一个请求从前端流向数据库的过程是怎样的?有资源竞争吗?如果有怎么解决的?
    这些问题能答清楚就可以了。
    xuanbg
        40
    xuanbg  
       2020-12-24 10:14:49 +08:00
    4C32G 的 ECS 上面,我的某几个接口做到了几千(万划掉)的 QPS 。🐶
    YouLMAO
        41
    YouLMAO  
       2020-12-24 11:17:50 +08:00 via Android
    @xuanbg 行了,明天打款 10 亿,5000 万 QPS 系统你是包工头,赶紧去买 20 万个容器了老板催周一上线
    iceneet
        42
    iceneet  
       2020-12-24 11:31:49 +08:00
    QPS 几千万?? 我觉得他不了解 QPS 是什么
    sadfQED2
        43
    sadfQED2  
       2020-12-24 12:04:09 +08:00 via Android
    50 万 qps,我们就用了 64 台机器处理 http 请求,后面还有各种消费机器,总共可能 3 400 台机器吧

    实在对不起,拉低平均技术水平了
    clxtmdb
        44
    clxtmdb  
       2020-12-24 12:14:23 +08:00
    赶紧通知国安局,这是外星人,用的外星科技
    clxtmdb
        45
    clxtmdb  
       2020-12-24 12:26:18 +08:00
    估计这人连 qps 是啥都不知道吧,科普一下: https://testerhome.com/articles/21443
    firefox12
        46
    firefox12  
       2020-12-24 17:31:18 +08:00
    来引流的吗? https://github.com/xiaojiaqi/10billionhongbaos 1400 万 QPS 腾讯 2015 年 摇一摇的峰值
    MinQ
        47
    MinQ  
       2020-12-28 11:21:00 +08:00
    4C8G 的机子用 Solr 单接口压测干到过 5000qps
    gogogochaogg
        48
    gogogochaogg  
       2020-12-30 10:45:15 +08:00
    @xuanbg tomcat 服务器不就有瓶颈吗,1000 左右,请问下,几千是怎么做到的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2660 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:05 · PVG 12:05 · LAX 20:05 · JFK 23:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.