比如两台内存、硬盘、带宽都完全一样的纯静态图片服务器,一台 2 核的 cpu 和一台 8 核 cpu 。
高并发状态下,在图片加载响应速度方面,8 核比 2 核会高很多吗
高并发状态下,在图片加载响应速度方面,8 核比 2 核会高很多吗
1
lvzhiqiang Dec 16, 2022
在图片加载响应速度方面 -- 更多和带宽有关。
|
2
abear Dec 16, 2022
买两台 try 一下
|
3
opengps Dec 16, 2022
也就寻找图片,读写输出时候用一点 cpu ,个人感觉 4 核对比 8 核心,可以忽略不计。
重点提升下带宽,其次硬盘介质类型,软件上优化下存储结构(别一个文件夹下 100000 张图片),最后才是 cpu 内存 |
4
eason1874 Dec 16, 2022
原图返回,比较吃 CPU 的也就 HTTPS 开销,一般差距不大,往往跑满带宽了 CPU 还没用一半
要是开了转码、压缩功能就吃 CPU 了,但是具体吃多少,也得看具体转码和压缩比例了 |
5
46fo Dec 16, 2022
zero-copy http 的话就不费 cpu
|
6
longbo666 Dec 16, 2022
是不是可以等价理解为:
对于纯静态的文件服务器,cpu 对性能影响大吗? |
7
retanoj Dec 16, 2022
对 U 的消耗可以忽略不计。
静态图片服务器,比较吃带宽。 还需要看是否配置了使用缓存 |
8
star7th Dec 16, 2022
这个事情我有发言权。
因为我自己开发的 cdn 服务就是这种大量文件(图片等资源)的场景。https://www.v2ex.com/t/877718 我的经验是:在达到了一定程度后,cpu 再提升已经没有明显效果,甚至说差不多。对于大量文件的场景,内存和带宽是最重要的。更大的内存也意味着有更大的缓存空间。至于带宽,也是越大越好。对于 2 核和 8 核的 cpu ,我预计差别不大。 |
10
seers Dec 16, 2022 via Android
DMA 不走 CPU ,文件函数直接拷贝到网卡去了
|
11
proxytoworld Dec 16, 2022
@star7th 学习了
|
12
dusu Dec 16, 2022 via iPhone
比起 cpu 静态文件更多在于 io 瓶颈
例如要跑大带宽的机器 硬盘读速率就最好得大于带宽量 |
13
yufeng0681 Dec 16, 2022
直观感受一下, 你从笔记本 copy 一个 20GB 的电影到 NAS 或者另外一台电脑,你觉得是什么限制了下载速度?
1 、网络带宽基本接近极限 2 、如果你用老式硬盘,能感觉到磁盘速度不给力,达不到网络带宽极限 3 、无论你 copy 速度多么块, 你都能看到 cpu 的占用,就好像和没占用一样 当然,如果你服务器端实现方案特别复杂,那可能 cpu 损耗就不小,比如你要做图片大小自适应,格式转换什么的,就得读到内存里面,做图形处理,然后再发出去。 |
14
izoabr Dec 16, 2022
我理解可能加不加压缩会影响比较大,其他的 IO 啥的主要靠硬件的 IO 速度
|
16
8355 Dec 16, 2022
cpu 应该就是 ng 会用 要不然你就在 ng 层做代理 动态压缩这种可能会有一些影响 不然的话基本没
主要是磁盘 io 和带宽 |
17
fisherwei Dec 16, 2022
@yufeng0681
这不一样,copy 一个 20g 的文件是单一 tcp 链接,大包 cdn 服务器是小文件,高并发。 假设一个图片 5kb ,20g=4,000,000 个文件=建立 /断开 4M 次 tcp 连接。 每一次 3 次握手,4 次挥手,可能还有 tls 握手。 |