• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kisshere
V2EX  ›  程序员

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

  •  
  •   kisshere · Dec 16, 2022 · 3865 views
    This topic created in 1329 days ago, the information mentioned may be changed or developed.
    比如两台内存、硬盘、带宽都完全一样的纯静态图片服务器,一台 2 核的 cpu 和一台 8 核 cpu 。
    高并发状态下,在图片加载响应速度方面,8 核比 2 核会高很多吗
    17 replies    2022-12-16 15:53:00 +08:00
    lvzhiqiang
        1
    lvzhiqiang  
       Dec 16, 2022
    在图片加载响应速度方面 -- 更多和带宽有关。
    abear
        2
    abear  
       Dec 16, 2022
    买两台 try 一下
    opengps
        3
    opengps  
       Dec 16, 2022
    也就寻找图片,读写输出时候用一点 cpu ,个人感觉 4 核对比 8 核心,可以忽略不计。
    重点提升下带宽,其次硬盘介质类型,软件上优化下存储结构(别一个文件夹下 100000 张图片),最后才是 cpu 内存
    eason1874
        4
    eason1874  
       Dec 16, 2022
    原图返回,比较吃 CPU 的也就 HTTPS 开销,一般差距不大,往往跑满带宽了 CPU 还没用一半

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

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

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

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

    假设一个图片 5kb ,20g=4,000,000 个文件=建立 /断开 4M 次 tcp 连接。
    每一次 3 次握手,4 次挥手,可能还有 tls 握手。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5817 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 02:14 · PVG 10:14 · LAX 19:14 · JFK 22:14
    ♥ Do have faith in what you're doing.