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

关于云服务器 1M 带宽的选择

  •  
  •   Sniper416 · 2019-09-29 11:26:34 +08:00 · 6534 次点击
    这是一个创建于 1881 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前只是提供一些 api,获取少量数据。那么 1m 的带宽够吗?

    PS:数据量不变的情况下,使用人数变大的情况下应该是提升云服务器那一块的配置呢?(核数? G 数?带宽?)

    26 条回复    2019-10-08 12:15:32 +08:00
    biantaoGG
        1
    biantaoGG  
       2019-09-29 11:30:03 +08:00
    看你的服务器是哪家的了
    有的云服务商的带宽是共用的,假如 1M 带宽,那么你自己上传 /下载到服务器+N 个用户访问服务器用的都是这 1M 带宽,那么人越多,越卡(此处指网卡)
    有的云服务商是每个人访问独立的,即每个用户对該服务器的传输都是独立使用 1M 带宽,那么人越多,CPU 的负载越高,越卡(CPU 性能不足的情况下)
    gesse
        2
    gesse  
       2019-09-29 11:31:39 +08:00
    直接买个 1m 的 vps 测试几天看看?合适就买
    learningman
        3
    learningman  
       2019-09-29 11:34:48 +08:00 via Android   ❤️ 1
    @biantaoGG 从没见过单连接给独立带宽的。。。你要知道有个东西叫多线程
    Sniper416
        4
    Sniper416  
    OP
       2019-09-29 11:35:20 +08:00
    @biantaoGG 准备是腾讯云
    zhengxiaowai
        5
    zhengxiaowai  
       2019-09-29 11:36:37 +08:00
    1M 其实不少了,其实还是要看并发量,假如你 api response 大小平均 1kb,那么当有 800 请求并发的时候,1M 就有点扛不住了。但是实际情况 response 都小的可怜。

    升级配置,你可以看控制台监控,哪个不够就升级哪一个,这种一般都是 case by case
    Sniper416
        6
    Sniper416  
    OP
       2019-09-29 11:46:27 +08:00
    @zhengxiaowai 超出并发量的用户是会请求失败吗?
    zhybb2010
        7
    zhybb2010  
       2019-09-29 14:03:39 +08:00
    问题不大。假如 请求参数+ 报文 0.5 kb, 输出 api 报文 1kb 共 1.5kb ,若全走缓存,则 1MB 带宽资源可以完成 1024/1.5 = 682.67 次请求 /s,实际 1MB 带宽基本可用约为 680 kb/s 则 680/1.5 = 453.33 次 /s. 我感觉理论差不多就这样了。。
    opengps
        8
    opengps  
       2019-09-29 14:06:11 +08:00
    推测楼主的需求够用。
    只是动态还好,如果带静态资源的话参考我的动静分离方案: https://www.opengps.cn/Blog/View.aspx?id=43
    opengps
        9
    opengps  
       2019-09-29 14:07:59 +08:00
    @biantaoGG 借楼问下:哪家云厂商提供每个人访问独立的服务?这种功能听起来不错,但是实现代价很大,我还没见过这种服务商
    zhengxiaowai
        10
    zhengxiaowai  
       2019-09-29 14:39:52 +08:00
    @Sniper416 如果是稍微扛不住的话会出现明显的 lantency 升高,如果量再大一些可能会有 timeout 的情况,总之会出现一些和网络相关的错误
    Sniper416
        11
    Sniper416  
    OP
       2019-09-29 14:40:19 +08:00
    @zhybb2010 超出这个次数的用户就会请求失败?
    YUyu101
        12
    YUyu101  
       2019-09-29 14:47:03 +08:00
    我也不懂,1mb 好像太小了吧,ajax 请求当然问题不大,但是 htmlcssjs 图片加起来就大了,别人要是刷新几下怎么办,感觉就只能当个 api 服务器用,静态资源得另想办法。
    zocome
        13
    zocome  
       2019-09-29 15:13:42 +08:00
    @YUyu101 #12 如果国内的 1M 且已备案,资源文件可以走 CDN 的,1M 带宽纯 HTML 的话其实也够用
    zhybb2010
        14
    zhybb2010  
       2019-09-29 16:41:41 +08:00
    你的网站并发那么高么?
    eason1874
        15
    eason1874  
       2019-09-29 16:41:44 +08:00
    楼上那些 1M 带宽有几百 kb/s 是什么服务商?我用的腾讯云和阿里云 1M 带宽就 128kb/s 啊。

    楼主的问题没办法回答。怎么定义你说的少量数据?就算跑满 128kb 也不能叫大量数据吧。另外也不知道你的数据是怎么得来的,背后需要运算还是需要从海量数据里选中,都没说,没办法评估。
    eason1874
        16
    eason1874  
       2019-09-29 16:56:19 +08:00
    顺便说一下我一个奇技淫巧,我用阿里云最低配置 ECS 提供 API,运力是够的,但是带宽不够,于是我就把数据处理好传到 OSS 并返回 OSS 访问链接让客户端通过 OSS 获取 API 内容。因为 ECS 到 OSS 的内网带宽远大于 ECS 到客户端的外网带宽,这样我就实现了无论 API 返回数据多大都只占用一个 302 响应那么大的带宽。
    Sniper416
        17
    Sniper416  
    OP
       2019-09-29 16:57:53 +08:00
    @eason1874 可能一个 api 也就返回几百 B 的数据吧,不到 1kb。数据的话从 sql 查询出来,不超过 2500 条记录,几乎没有计算过程。
    eason1874
        18
    eason1874  
       2019-09-29 17:17:53 +08:00
    @Sniper416 #17 这么少数据,直接干到内存里,首先遇到的瓶颈肯定是带宽了。
    zhybb2010
        19
    zhybb2010  
       2019-09-29 17:31:30 +08:00
    @eason1874 刚刚测试了下。上行应该没限速,下行还真也就 128kb。。。所以,建议使用 CDN。
    imNull
        20
    imNull  
       2019-09-29 19:24:25 +08:00 via Android
    @zhybb2010
    上行一般是 100Mb
    lygmqkl
        21
    lygmqkl  
       2019-09-29 20:13:22 +08:00
    1M+CDN 足够基础使用了。CDN 现在也很便宜。
    heiheidewo
        22
    heiheidewo  
       2019-09-29 20:17:50 +08:00
    看你做什么,小透明的应用就无所谓,如果有竞争对方攻击的话,可以考虑加大带宽。
    两周前我就被小人恶心到了,每秒几千次请求从大量不同的 ip 过来,服务器没挂,但是写了大量垃圾数据。
    realpg
        23
    realpg  
       2019-09-30 08:30:48 +08:00 via Android
    @opengps
    瞎编式科普而已 认真你就输了
    NSAgold
        24
    NSAgold  
       2019-09-30 08:50:50 +08:00 via Android   ❤️ 1
    @zhybb2010 #7 建议补课
    1Mbps 带宽理论最大速度为 128KB/s
    请注意 bit 和 byte 的转换
    zhybb2010
        25
    zhybb2010  
       2019-10-08 10:22:48 +08:00
    @NSAgold 已补课。1M 带宽 = 1Mbps = 1 Million bits per second = 1 Mbits/s = 1/8 MBytes/s = 1/8 Mb/s = 0.125Mb/s = 128Kb/s. 重点 bit -> byte.
    NSAgold
        26
    NSAgold  
       2019-10-08 12:15:32 +08:00 via Android
    @zhybb2010 #25 应该是 1/8 MB/S 0.125MB/s 128KB/s
    MBytes KBytes 缩写是 MB KB
    Mbits Kbits 缩写是 Mb Kb
    bit 缩写为小写的 b
    byte 缩写为大写的 B
    不论 m k 等是否为小写,后面的 b B 仍要做出区分,如 Mb = mb = 128KB = 128kB
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5458 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 03:29 · PVG 11:29 · LAX 19:29 · JFK 22:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.