V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
qweweretrt515
V2EX  ›  问与答

nginx+flask 用 http2+https 或 http,哪个并发更高,承受的用户更多?

  •  
  •   qweweretrt515 · 2016-10-12 19:59:45 +08:00 · 3944 次点击
    这是一个创建于 2983 天前的主题,其中的信息可能已经有所发展或是发生改变。

    服务器环境: ubuntu , 1Mbit/s 独享, 0.5G 内存, ddr3 , Intel® Xeon® 单核

    就是这里最便宜的那个 http://cloud.tmall.com/hostSelection.htm#price

    其实是希望给网站加密,但是听说 https 上了,会影响网站性能

    这个配置,加密和不加密的情况下,分别能抗住多少用户呢

    能举个例子吗

    谢谢

    16 条回复    2016-10-14 09:33:33 +08:00
    qweweretrt515
        1
    qweweretrt515  
    OP
       2016-10-12 20:13:15 +08:00
    产品有 web ,和安卓,苹果 app

    不加密就上不了苹果市场,也很危险不安全

    加密的话,可选的优化方案有 http2 + Web Worker + 静态资源 cdn
    rrfeng
        2
    rrfeng  
       2016-10-12 20:15:22 +08:00   ❤️ 1
    https 并没有很大开销。
    比你的 flask 代码少多了,相信我。
    qweweretrt515
        3
    qweweretrt515  
    OP
       2016-10-12 20:17:20 +08:00
    @rrfeng 谢谢你,因为我知识有限,看了网上的文章,在我的理解中,用了 https 就好比原本裸奔的一个人,背着厚厚的行李行走,再也走不快了

    而不用 https 虽然跑的快,但变成了裸奔
    rrfeng
        4
    rrfeng  
       2016-10-12 20:30:05 +08:00   ❤️ 1
    @qweweretrt515
    这样理解没有错,但是现在的 CPU 跑的很快。

    另外,这种问题先上了再说,一种方案搞上去如果不行,那么就去查瓶颈在哪里,这也是学习的过程。
    Kilerd
        5
    Kilerd  
       2016-10-12 20:38:41 +08:00   ❤️ 1
    两个都分别搭建一次环境,然后都做一次压力测试不就好了???

    而且 个人认为,瓶颈绝对首先出现在 你的 flask 代码中,而不是 http 与 https 的选择上。
    qweweretrt515
        6
    qweweretrt515  
    OP
       2016-10-12 20:40:16 +08:00
    @Kilerd 谢谢
    shiny
        7
    shiny  
       2016-10-12 20:46:50 +08:00   ❤️ 1
    1 、可以上 HTTP/2
    2 、 https 还能解决运营商插广告的问题
    3 、更安全

    还是首先来解决哪里来这么多用户的问题先?
    XiaoxiaoPu
        8
    XiaoxiaoPu  
       2016-10-12 20:49:02 +08:00   ❤️ 2
    你的带宽只有 1Mbit/s ,即使跑满对 CPU 的压力也不大。这种情况下, HTTPS 对网站访问的主要影响在于 HTTPS 握手的开销,增加响应时间,对并发量影响应该不大。 HTTPS 优化可以参考 JerryQu 大神的博客: https://imququ.com/
    zwh8800
        9
    zwh8800  
       2016-10-13 00:16:16 +08:00   ❤️ 1
    最先扛不住的肯定不是 nginx 。一般并发上来的时候最早挂掉的是数据库。第二个是你的应用( falsk )。

    看你服务器的配置,保守估计 100 个并发你数据库就内存不足歇菜了。你可以执行下 `ab -c 100 -n 10000 http://localhost/` 试试。

    bat 级别的并发才会考虑 nginx 这一层面的问题。所以 bat 一般都有自己的负载均衡。小公司用 nginx 上 https 没问题,多少人都在用着呢。

    解决性能问题第一点是考虑业务场景,第二点是抓主要矛盾、放弃次要矛盾。
    msg7086
        10
    msg7086  
       2016-10-13 02:32:13 +08:00   ❤️ 1
    @zwh8800 这配置,最先扛不住的肯定是上行带宽……
    chenset
        11
    chenset  
       2016-10-13 08:54:04 +08:00   ❤️ 1
    https 的 ab 测试比 http 的 ab 测试速度降一个数量级. 不严谨的测试结果, 求打脸.
    zwh8800
        12
    zwh8800  
       2016-10-13 09:10:20 +08:00   ❤️ 1
    @msg7086 哈哈,我一般不把带宽这种东西算作性能测试的考虑范围
    qweweretrt515
        13
    qweweretrt515  
    OP
       2016-10-13 09:30:14 +08:00
    @chenset 方便贴出数据吗
    qweweretrt515
        14
    qweweretrt515  
    OP
       2016-10-13 09:30:57 +08:00
    @zwh8800 谢谢,数据库用的云数据库,好像数据库也可以缓存内容,加速访问
    srlp
        15
    srlp  
       2016-10-13 21:43:58 +08:00 via iPhone
    根本不是个事。或者说,你有这个疑问,证明你的水平还没到需要担心这些问题的时候。
    chenset
        16
    chenset  
       2016-10-14 09:33:33 +08:00
    ### Results for http ("ab -n 10000 http://ubuntu904/index.html")

    Time taken for tests: 2.664 seconds
    Requests per second: 3753.69 (#/sec)
    Time per request: 0.266ms
    ### Results for https ("ab -n 10000 https://ubuntu904/index.html"):

    Time taken for tests: 107.673 seconds
    Requests per second: 92.87 (#/sec)
    Time per request: 10.767ms


    #### http://serverfault.com/questions/43692/how-much-of-a-performance-hit-for-https-vs-http-for-apache
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2610 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:55 · PVG 22:55 · LAX 06:55 · JFK 09:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.