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

对于纯静态的图片服务器, cpu 对性能影响大吗?

  •  
  •   kisshere · 2022-12-16 08:38:02 +08:00 · 3098 次点击
    这是一个创建于 468 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如两台内存、硬盘、带宽都完全一样的纯静态图片服务器,一台 2 核的 cpu 和一台 8 核 cpu 。
    高并发状态下,在图片加载响应速度方面,8 核比 2 核会高很多吗
    17 条回复    2022-12-16 15:53:00 +08:00
    lvzhiqiang
        1
    lvzhiqiang  
       2022-12-16 08:47:57 +08:00
    在图片加载响应速度方面 -- 更多和带宽有关。
    abear
        2
    abear  
       2022-12-16 08:50:47 +08:00
    买两台 try 一下
    opengps
        3
    opengps  
       2022-12-16 08:55:47 +08:00
    也就寻找图片,读写输出时候用一点 cpu ,个人感觉 4 核对比 8 核心,可以忽略不计。
    重点提升下带宽,其次硬盘介质类型,软件上优化下存储结构(别一个文件夹下 100000 张图片),最后才是 cpu 内存
    eason1874
        4
    eason1874  
       2022-12-16 08:59:06 +08:00
    原图返回,比较吃 CPU 的也就 HTTPS 开销,一般差距不大,往往跑满带宽了 CPU 还没用一半

    要是开了转码、压缩功能就吃 CPU 了,但是具体吃多少,也得看具体转码和压缩比例了
    xdeng
        5
    xdeng  
       2022-12-16 09:39:00 +08:00
    zero-copy http 的话就不费 cpu
    longbo666
        6
    longbo666  
       2022-12-16 10:02:22 +08:00
    是不是可以等价理解为:
    对于纯静态的文件服务器,cpu 对性能影响大吗?
    retanoj
        7
    retanoj  
       2022-12-16 10:47:02 +08:00
    对 U 的消耗可以忽略不计。
    静态图片服务器,比较吃带宽。
    还需要看是否配置了使用缓存
    star7th
        8
    star7th  
       2022-12-16 10:52:41 +08:00
    这个事情我有发言权。

    因为我自己开发的 cdn 服务就是这种大量文件(图片等资源)的场景。https://www.v2ex.com/t/877718

    我的经验是:在达到了一定程度后,cpu 再提升已经没有明显效果,甚至说差不多。对于大量文件的场景,内存和带宽是最重要的。更大的内存也意味着有更大的缓存空间。至于带宽,也是越大越好。对于 2 核和 8 核的 cpu ,我预计差别不大。
    fisherwei
        9
    fisherwei  
       2022-12-16 10:57:01 +08:00
    @star7th
    有没有对比过 RDMA 网卡的提升?微软说 nvme+rdma 效果提升巨大,不知道有多么巨大。
    seers
        10
    seers  
       2022-12-16 11:00:21 +08:00 via Android
    DMA 不走 CPU ,文件函数直接拷贝到网卡去了
    proxytoworld
        11
    proxytoworld  
       2022-12-16 11:04:24 +08:00
    @star7th 学习了
    dusu
        12
    dusu  
       2022-12-16 11:41:57 +08:00 via iPhone
    比起 cpu 静态文件更多在于 io 瓶颈
    例如要跑大带宽的机器
    硬盘读速率就最好得大于带宽量
    yufeng0681
        13
    yufeng0681  
       2022-12-16 14:27:46 +08:00
    直观感受一下, 你从笔记本 copy 一个 20GB 的电影到 NAS 或者另外一台电脑,你觉得是什么限制了下载速度?
    1 、网络带宽基本接近极限
    2 、如果你用老式硬盘,能感觉到磁盘速度不给力,达不到网络带宽极限
    3 、无论你 copy 速度多么块, 你都能看到 cpu 的占用,就好像和没占用一样

    当然,如果你服务器端实现方案特别复杂,那可能 cpu 损耗就不小,比如你要做图片大小自适应,格式转换什么的,就得读到内存里面,做图形处理,然后再发出去。
    izoabr
        14
    izoabr  
       2022-12-16 14:35:55 +08:00
    我理解可能加不加压缩会影响比较大,其他的 IO 啥的主要靠硬件的 IO 速度
    star7th
        15
    star7th  
       2022-12-16 15:15:03 +08:00
    @fisherwei 没有对比过,不清楚
    8355
        16
    8355  
       2022-12-16 15:24:36 +08:00
    cpu 应该就是 ng 会用 要不然你就在 ng 层做代理 动态压缩这种可能会有一些影响 不然的话基本没
    主要是磁盘 io 和带宽
    fisherwei
        17
    fisherwei  
       2022-12-16 15:53:00 +08:00
    @yufeng0681
    这不一样,copy 一个 20g 的文件是单一 tcp 链接,大包
    cdn 服务器是小文件,高并发。

    假设一个图片 5kb ,20g=4,000,000 个文件=建立 /断开 4M 次 tcp 连接。
    每一次 3 次握手,4 次挥手,可能还有 tls 握手。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5419 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 331ms · UTC 09:09 · PVG 17:09 · LAX 02:09 · JFK 05:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.