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

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

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

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

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

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

假设一个图片 5kb ,20g=4,000,000 个文件=建立 /断开 4M 次 tcp 连接。
每一次 3 次握手,4 次挥手,可能还有 tls 握手。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/902852

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX