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

SO 只用了 9 台 Web 服务器

  •  
  •   bmpidev2019 ·
    madawei2699 · 2021-11-22 14:06:14 +08:00 · 12358 次点击
    这是一个创建于 1083 天前的主题,其中的信息可能已经有所发展或是发生改变。
    stackexchange.com/performance

    StackOverflow (全球排名 188 )每月几亿的 PV (每月 55TB 网络流量),只需要 9 台 Web 服务器( RAM 64GB ),4 台数据库服务器。不过开销最大的还是用了 3 台 ES ( RAM 196G )。

    技术栈是 C#(.Net),还是挺强的。
    96 条回复    2021-11-23 19:59:21 +08:00
    felixcode
        1
    felixcode  
       2021-11-22 14:11:58 +08:00   ❤️ 4
    不用 java ,这能算企业级应用吗?
    狗头;)
    Remember
        2
    Remember  
       2021-11-22 14:15:30 +08:00   ❤️ 1
    主要是 cdn 的功劳吧。
    matrix1010
        3
    matrix1010  
       2021-11-22 14:18:13 +08:00   ❤️ 12
    再告诉你个挺强的。Instagram 被 Facebook 收购时只有 7 个员工,还是用 Python/Django 写的。月活没几亿至少也几千万
    matrix1010
        4
    matrix1010  
       2021-11-22 14:20:10 +08:00
    @matrix1010 记错了,包括创始人 13 个
    salmon5
        5
    salmon5  
       2021-11-22 14:24:28 +08:00
    用了 java 后,服务器翻翻
    pigspy
        6
    pigspy  
       2021-11-22 14:25:02 +08:00
    但是访问 StackOverflow 还是有点慢,不知道是我的网络原因还是服务器的原因
    CodeCodeStudy
        7
    CodeCodeStudy  
       2021-11-22 14:27:32 +08:00
    相对于公司收入,这点服务器开支算不了什么吧
    makelove
        8
    makelove  
       2021-11-22 14:28:51 +08:00
    有些网站的架构就是流量大,技术含量很一般,比如上面的 instagram
    eason1874
        9
    eason1874  
       2021-11-22 14:31:11 +08:00
    300 REQ /S
    Peak: 450 req /s

    每秒请求数这么低吗,包括静态内容?
    bmpidev2019
        10
    bmpidev2019  
    OP
       2021-11-22 14:34:19 +08:00 via iPhone
    @eason1874 平均啊,一个月几亿 PV ,平摊到秒也就几百。很多高并发系统只是为了应对秒杀场景。
    locoz
        11
    locoz  
       2021-11-22 14:34:26 +08:00 via Android
    很合理。基本都是静态内容,大部分人也只是看内容而已,主要靠 CDN 扛就行了。
    matrix1010
        12
    matrix1010  
       2021-11-22 14:38:28 +08:00
    @makelove 不要只看到技术,我想表达的是在十年前,一个高流量且比较复杂的 App 只要 13 个人就能完成开发。而反观国内创业公司,很多没有 Instagram 复杂和流量的公司却至少 4 ,50 人
    sujin190
        13
    sujin190  
       2021-11-22 14:41:05 +08:00
    不是我说,这已经 2021 年了,大站点每日内部外部各种请求调用的都奔着万亿级去了,小站点依然受益于各种基础设施的进步,9 台那么大内存的 web 服务器处理每月几亿 pv 绰绰有余了吧,你说每月处理数百亿 pv 我感觉都能信了
    dangyuluo
        14
    dangyuluo  
       2021-11-22 14:41:46 +08:00
    9 台后端服务器,每个月几个 million 的 CDN 账单(夸张)
    eason1874
        15
    eason1874  
       2021-11-22 14:44:56 +08:00
    @bmpidev2019 我的意思是,这个数据是指全部请求还是有效请求?全部请求应该不止,有一些傻缺爬虫,几个 IP 就能带来几十并发,疯狂请求,不拉黑它们都不停下来

    有效请求 300 REQ /S 倒不奇怪。看来他们是只统计了能通过防火墙的流量,被挡出去的不计入
    BrettD
        16
    BrettD  
       2021-11-22 14:48:57 +08:00 via iPad
    @pigspy 海外访问是秒开
    westoy
        17
    westoy  
       2021-11-22 15:00:03 +08:00   ❤️ 2
    @matrix1010

    业务简单而且迭代慢啊
    我 05 年靠一台单核 P4 都能撑几十万 PV
    早期 douban 用一台双核 amd 撑了几百万 PV 一天的时候洪博士还去 quixote 的邮件列表 show 了下
    当时互联网还有个改版魔咒, 业务大改都很慎重的
    后来 chrome 拖着 firefox 开始刷版本号,PM 成为了一个独立职业, 感觉整个行业基本都奔着快速迭代快速试错和大而全去了
    bmpidev2019
        18
    bmpidev2019  
    OP
       2021-11-22 15:08:51 +08:00 via iPhone
    @eason1874 我算了下感觉应该是有效用户请求,之前我做了一个爬 ins 的垃圾站,峰值爬虫一天五十万请求,是实际用户请求的十倍多,我很多时间在处理爬虫请求。
    SuperManNoPain
        19
    SuperManNoPain  
       2021-11-22 15:12:07 +08:00
    语言有两种,一种被人黑的,一种没人用的😅
    bmpidev2019
        20
    bmpidev2019  
    OP
       2021-11-22 15:13:08 +08:00 via iPhone
    @bmpidev2019 当时一个月大概 1T 的网络流量,三台 1 核 1g 的服务器,几乎没啥负荷。
    lostberryzz
        21
    lostberryzz  
       2021-11-22 15:15:38 +08:00
    因为这公司业务相对简单,读多写少,访问量不能说明什么,现在 app 时代,pv 多少也不重要了,更何况 alexa 排名也不高 orz
    ytmsdy
        22
    ytmsdy  
       2021-11-22 15:25:05 +08:00
    其实相较于现在的服务器性能,很多完全够用的。
    根本没有到需要压榨性能的地步。
    跑得慢,绝大多数都是因为写的不好!
    matrix1010
        23
    matrix1010  
       2021-11-22 15:32:39 +08:00
    @westoy 好奇去查了查洪博士,创立的爱因互动连官网都打不开了。豆瓣也是难以找到合理的盈利模式。挺感慨
    ColinWei
        24
    ColinWei  
       2021-11-22 15:34:00 +08:00   ❤️ 25
    大言不惭的人真多,承认别人优秀这么难吗
    mytsing520
        25
    mytsing520  
       2021-11-22 15:45:03 +08:00
    看了一下,感觉大部分请求都被 CDN 吃掉了,由 HA 把请求分布到 web 服务器,实际到网站侧压力极低,而不是说他这个架构能吃得下那么多
    icyalala
        26
    icyalala  
       2021-11-22 15:45:53 +08:00
    WhatsApp 被收购时,全部工程师只有 32 个,那可是亿级月活的 IM 服务,服务端 Erlang 。
    技术强终究还是看人。
    12101111
        27
    12101111  
       2021-11-22 15:49:39 +08:00
    @eason1874 stackexchange 家族的网站不需要爬虫, 有直接提供数据下载的地方
    https://meta.stackoverflow.com/questions/295508/download-stack-overflow-database
    liprais
        28
    liprais  
       2021-11-22 15:53:29 +08:00
    @matrix1010 你想多了,月活百万的时候他们就扛不住被 fb 收购了
    matrix1010
        29
    matrix1010  
       2021-11-22 16:13:59 +08:00
    @liprais 你的依据是什么?这是 2012 年 4 月 13 日的新闻,每天新用户超过 100 万。而 facebook 宣布收购 ins 是 4 月 9 号,时间差不多。https://techcrunch.com/2012/04/13/instagrams-user-count-now-at-40-million-saw-10-million-new-users-in-last-10-days/
    wanguorui123
        30
    wanguorui123  
       2021-11-22 16:15:11 +08:00
    主要还是看架构
    CallMeReznov
        31
    CallMeReznov  
       2021-11-22 16:17:54 +08:00   ❤️ 1
    我记得谁之前说过,除了 CDN 分摊了压力之外,游客和注册会员游览的数据也是分开的.
    未注册的游客游览的数据全是隔几分钟才更新一次的静态帖子,只有注册用户才是最新的即时帖子.
    cmdOptionKana
        32
    cmdOptionKana  
       2021-11-22 16:18:19 +08:00
    @liprais 不是服务器扛不住,而是因为实在给得太多扛不住。当时 Twitter 开价 5 亿美元想收购 Ins ,Ins 就犹犹豫豫只是考虑,过了没多久 Facebook 一出价就是 10 亿美元,而且口头承诺不干预 Ins 的发展,让 Ins 可以继续自己管理公司,如此优厚的条件,实在太难拒绝。
    janxin
        34
    janxin  
       2021-11-22 16:33:27 +08:00
    @icyalala 确实,人的水平决定了架构与技术能否被充分压榨
    liprais
        35
    liprais  
       2021-11-22 16:34:19 +08:00
    @cmdOptionKana ..."月活百万的时候他们就扛不住(很快)被 fb 收购了 "
    lidongyooo
        36
    lidongyooo  
       2021-11-22 16:49:42 +08:00   ❤️ 30
    进来之前还以为 SO 是啥呢,不输全称是为了键盘的寿命着想吗?佛了。。。
    qW7bo2FbzbC0
        37
    qW7bo2FbzbC0  
       2021-11-22 16:58:08 +08:00
    ins 的 django 和 python 大概率不是外面人用的版本,应该是自己根据业务特性深度优化过的吧
    janxin
        38
    janxin  
       2021-11-22 16:58:19 +08:00
    @liprais 这本书有中译本,不过这个描述好像确实没什么印象。
    janxin
        39
    janxin  
       2021-11-22 17:05:39 +08:00
    @hjahgdthab750 ins 的官方博客有介绍过,可以翻一下。

    在早期还是官方版本吧,起码 FB 收购的时候应该是的。根据关于 Django 的介绍里面用的 1.3 版本,后面升级的 1.8 版本。
    kisshere
        40
    kisshere  
       2021-11-22 17:06:07 +08:00
    借个楼问一句,ES 最大支持 32GB 内存,SO 家的 ES 服务器内存是 196GB ,多余的不浪费了么?
    easylee
        41
    easylee  
       2021-11-22 17:12:12 +08:00
    以为你说的是 so 搜索引擎,不建议用简称啊
    thetbw
        42
    thetbw  
       2021-11-22 17:17:05 +08:00
    @kisshere 你看到的那个是设置 java 的堆内存最好不超过这么大吧,可能还有堆外内存的使用
    raycool
        43
    raycool  
       2021-11-22 17:21:17 +08:00
    @hjahgdthab750 当初人员那么少,应该不会再有人力深度定制
    wellsc
        44
    wellsc  
       2021-11-22 17:27:48 +08:00
    当年 github 也才十几个人
    otakustay
        45
    otakustay  
       2021-11-22 17:38:54 +08:00
    @pigspy #6 多数是你网络问题,这世界上比 stackoverflow 快的网站屈指可数
    yazoox
        46
    yazoox  
       2021-11-22 17:41:05 +08:00   ❤️ 1
    有一说一,.net core 的技术栈,也就是国内用得少(国内都是 java ),在国外,很多公司,都是用的.net core 那一套
    lower
        47
    lower  
       2021-11-22 17:45:25 +08:00
    怎么又讨论这个问题了?
    当年在知乎这个问题都讨论烂了,当时 c#阵营的人拿这个把其他阵营的怼了个遍😂
    zeni123
        48
    zeni123  
       2021-11-22 18:00:05 +08:00
    450 req/s 一台服务器也可以吧
    cccssss
        49
    cccssss  
       2021-11-22 18:02:56 +08:00
    SQLServer 的 1.5TB RAM 是啥意思?
    bmpidev2019
        50
    bmpidev2019  
    OP
       2021-11-22 18:53:10 +08:00 via iPhone
    @cccssss 合计 1.5T 吧,单台数据库也就几百 G ,之前我挖矿的 GPU 服务器单台都 200G 内存了
    documentzhangx66
        51
    documentzhangx66  
       2021-11-22 18:58:53 +08:00
    水平问题。

    我司一个每天不到一百访问量的门户系统,使用了 6 台物理服务器,做了虚拟化,单台配置:

    128G DDR4-2933 内存,

    CPU Intel Gold 6226R * 2 ,14nm/16C32T/2.9-3.9GHz/22MB/150W

    软件产品是北方某个 90%都是小妞的公司,导致这套系统,每台服务器,CPU 长期 1%使用率,内存 78%使用率。

    你就说气不气?
    huangzxx
        52
    huangzxx  
       2021-11-22 19:03:07 +08:00
    @kisshere #40
    可能一台机多个 ES 实例吧
    shayuvpn0001
        53
    shayuvpn0001  
       2021-11-22 19:11:09 +08:00
    so 缺的是一个国内的产品经理,一个秒杀活动就能让 so 现出原形(还有微软)
    zhuangzhuang1988
        54
    zhuangzhuang1988  
       2021-11-22 19:42:31 +08:00
    创始人 blog 上有更加细节的
    https://nickcraver.com/blog/
    bing 也是在.netcore 上的
    zhuangzhuang1988
        55
    zhuangzhuang1988  
       2021-11-22 19:44:14 +08:00
    看当前数据 才厉害
    cpu 内存, 都占用得很低.
    bmpidev2019
        56
    bmpidev2019  
    OP
       2021-11-22 19:55:34 +08:00 via iPhone
    @zhuangzhuang1988 占用低的话就没必要上这么高的规格了,最好把硬件榨干才行
    gefangshuai
        57
    gefangshuai  
       2021-11-22 21:05:00 +08:00 via iPhone
    @felixcode 会说人话吗
    felixcode
        58
    felixcode  
       2021-11-22 21:21:26 +08:00
    @gefangshuai
    听不懂人话吗?
    lbp0200
        59
    lbp0200  
       2021-11-22 21:24:56 +08:00   ❤️ 9
    从中国派个产品经理过去,很快他们人手就不够了
    pengtdyd
        60
    pengtdyd  
       2021-11-22 21:27:13 +08:00
    我觉的 StackOverflow 缺一个垃圾的产品经理,有了某些产品经理就是 10 倍的服务器也扛不住,就像 CSDN 一样再加点垃圾广告,至少还要再加 5 倍!
    billzhuang
        61
    billzhuang  
       2021-11-22 21:37:04 +08:00
    @zhuangzhuang1988 这个人不是创始人吧,是工程师,另外,这几天他刚跳槽去了微软。
    billzhuang
        62
    billzhuang  
       2021-11-22 21:37:50 +08:00
    @zhuangzhuang1988 查了下,是 Architecture Lead
    sunhelter
        63
    sunhelter  
       2021-11-22 21:38:46 +08:00
    StackOverflow 是很强啊,Dapper 就是他们开源出来的,轻量 ORM 效率王者级别的存在。
    dexterzzz
        64
    dexterzzz  
       2021-11-22 22:19:33 +08:00   ❤️ 3
    StackOverflow 数据库使用,400 亿的数据
    https://www.tarynpivots.com/post/migrating-40tb-sql-server-database/
    zhuangzhuang1988
        65
    zhuangzhuang1988  
       2021-11-22 23:01:11 +08:00
    @billzhuang 好吧。
    eclipselu
        66
    eclipselu  
       2021-11-23 01:18:43 +08:00   ❤️ 1
    @westoy lol quixote 回忆杀,自己那会刚毕业用的第一个 web framework 。不好意思跑题鸡蛋里挑骨头一下:好像是叫洪教授
    JudyHal
        67
    JudyHal  
       2021-11-23 03:59:03 +08:00   ❤️ 3
    不知道要说多少次才能唤醒大家,这些只是正常不能再正常的数据,中国被 Java 这种玩意毒害太深,以至于都忘了程序员到底能跑多快了,现在除了中国已经没有任何一个国家用 Java 和 Go 了
    fanshaohua
        68
    fanshaohua  
       2021-11-23 04:53:02 +08:00 via Android
    @yazoox 我们公司就是主力.net core ,不太要求性能的用 Python...
    dayeye2006199
        69
    dayeye2006199  
       2021-11-23 06:05:09 +08:00   ❤️ 11
    我觉得有一个点大家都关注的很少 - 国外很多创业公司或者小企业,能够以很精简的人员和技术架构,做十分巨大的业务量(不是简单的以峰值 QPS 之类来衡量,而是能做实在的影响很多人工作生活的产品);在有了钱和业务量之后,这类公司也没有一味的盲目扩张人员和做不同的业务,而是依然保持了这个精简做事的方法,继续做自己擅长的事情。

    在技术方面,很多公司写的介绍技术方案的博客都十分的朴素,解决方案在国内看来甚至都有些简陋。
    例如 github 介绍他们分库的方案: https://github.blog/2021-09-27-partitioning-githubs-relational-databases-scale/
    notion 价绍他们分表的方案: https://www.notion.so/blog/sharding-postgres-at-notion

    读来都语言平实,很多人看了之后都很惊讶他们现在才在做分表分库。

    这种对业务和技术比较务实的态度,追求简单但是高效达成目标的做事方法,我觉得是很值得夸赞和学习的。
    leighton
        70
    leighton  
       2021-11-23 07:00:10 +08:00   ❤️ 5
    @JudyHal #67
    "现在除了中国已经没有任何一个国家用 Java 和 Go 了"
    Google Amazon: Am i a joke to you?
    hello2090
        71
    hello2090  
       2021-11-23 07:53:01 +08:00   ❤️ 1
    @JudyHal 澳大利亚的 java 程序员想问问,程序员到底能跑多快? 9.15 秒?
    weizhen199
        72
    weizhen199  
       2021-11-23 08:57:03 +08:00
    @JudyHal 你要是不带上 java 我可能还要犹豫 35ms
    hand515
        73
    hand515  
       2021-11-23 09:09:26 +08:00
    一些人的无知言论,看了就让人想笑
    darkengine
        74
    darkengine  
       2021-11-23 09:35:23 +08:00
    @JudyHal 话不要说得这么绝
    skyworker
        75
    skyworker  
       2021-11-23 09:38:34 +08:00
    怎么没上微服务? 架构师不行啊
    YUCOAT
        76
    YUCOAT  
       2021-11-23 09:52:03 +08:00
    他们的 APP 之所以只有几个员工,一是因为他们的产品比较简约,功能比较少,而且不用组建庞大的运营团队来逐个审查用户上传的图片是否合规。
    entersu
        77
    entersu  
       2021-11-23 10:18:02 +08:00
    主要是内容检索,只要 es 索引建立的好,就不会用太多机器,存储不值钱,主要是内存和带宽
    wangyzj
        78
    wangyzj  
       2021-11-23 10:19:09 +08:00   ❤️ 2
    面试官:请问你有千万并发的经验吗?
    Jwyt
        79
    Jwyt  
       2021-11-23 10:22:42 +08:00
    @JudyHal 所以程序员到底能跑多快?和刘翔一样快么,合着 jcp google 这么好为中国开发维护 java 、go ?
    whyso
        80
    whyso  
       2021-11-23 10:34:33 +08:00
    @JudyHal #67 你是来搞笑的吗?
    leeg810312
        81
    leeg810312  
       2021-11-23 10:34:38 +08:00 via Android
    人家技术栈和架构设计就是好,说不过是用了这个,用了那个,这些不都是技术栈和架构的一部分吗?不喜欢别人的技术栈就不承认别人做得好,这是什么心态呢?我虽然不喜欢 go ,但我觉得 dapr 做得不错。
    penll
        82
    penll  
       2021-11-23 11:43:45 +08:00
    @JudyHal 怀疑你在反向黑 c#。java 和 go 占有率,要不要这么胡诌
    fxxkgw
        83
    fxxkgw  
       2021-11-23 11:44:16 +08:00
    @JudyHal 这种言论怎么会出现在这而且还有点赞。。。简直了
    raptor
        84
    raptor  
       2021-11-23 11:49:05 +08:00
    以 SO 那帮人的技术,就是换成 PHP 来写,用的服务器也差不了多少。

    关键还是在人。
    hand515
        85
    hand515  
       2021-11-23 12:00:50 +08:00
    语言的性能差异在业务系统中真的能忽略不计,好的设计才是关键
    wy315700
        86
    wy315700  
       2021-11-23 12:08:20 +08:00
    每月几亿的 PV 其实不高

    只能说,,国内互联网的市场大于任何一个其他单一地方的市场。。。
    liuxu
        87
    liuxu  
       2021-11-23 12:33:19 +08:00
    没有最强的语言,只有最强的程序员
    jerry12547
        88
    jerry12547  
       2021-11-23 13:05:27 +08:00
    @fxxkgw 可能自己给自己点赞?
    FaiChou
        89
    FaiChou  
       2021-11-23 13:27:06 +08:00
    虽然知道 SO 是 stackoverflow 的缩写, 不过只看标题还没敢下结论是它.

    不如下次直接叫爆栈网.
    roundgis
        90
    roundgis  
       2021-11-23 13:45:11 +08:00
    SO 流量虽然比不上各大电商平台

    但是

    它对我来说有用得多。
    dexterzzz
        91
    dexterzzz  
       2021-11-23 15:40:39 +08:00
    @cccssss sql server 早就已经进化到内存数据库了,和 sap hana 类似,内存列式存储表
    yc8332
        92
    yc8332  
       2021-11-23 15:55:09 +08:00
    每月几亿 PV 。放国内毛毛雨吧。
    LessonOne
        93
    LessonOne  
       2021-11-23 16:19:46 +08:00
    @JudyHal 为什么各大排行 Java 都是前三?
    cym1102
        94
    cym1102  
       2021-11-23 17:08:16 +08:00
    全是数据库,中间件和 CDN 的功劳, 你用什么语言搞这一套都是一样的. 压力根本不在服务端语言上
    bmpidev2019
        95
    bmpidev2019  
    OP
       2021-11-23 18:36:15 +08:00 via iPhone
    @yc8332 全球排名 188 名( similar web 数据),并不是小站。
    @cym1102 的确和 web 服务关系不大,但这也有很复杂的工程问题,并不是无脑上就可以达到这种效果
    agagega
        96
    agagega  
       2021-11-23 19:59:21 +08:00
    @dayeye2006199
    这也是 Ruby 在国外远比在国内流行的一个原因吧:开发效率高,强调单兵作战,有黑魔法,不好吹出花
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1134 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 23:42 · PVG 07:42 · LAX 15:42 · JFK 18:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.