全球主机交流论坛

标题: 网站图片全部使用base64可行吗? [打印本页]

作者: buyabag    时间: 2021-10-10 13:00
标题: 网站图片全部使用base64可行吗?
本帖最后由 buyabag 于 2021-10-10 13:03 编辑

站群,一台杜甫,本地静态文件(html、图片)总数大概一两千万,单个图片容量小于500k。最近服务器的磁盘io一直100%,队列高达10左右,硬盘先要撑不住了。

现在能想到几种办法,硬件上的是:
1.加大内存,128G以上的内存做文件缓存,应该能缓解。
2.使用raid0 / 增加多台机器,简单粗暴。
3.直接一步到位上SSD,从根本上解决io问题。



此外我还有个软件上的想法:将所有图片直接编码为base64,插入到本地静态html中,每次用户访问可以减少10次左右的图片文件读取,这样是否也会极大的缓解磁盘io压力?

优点是,由于目前磁盘储存空间充足,cpu性能充足,这种方案不需要折腾数据迁移,且成本不变,只需要花点时间修改程序,重新生成一遍html即可。         当然代价是cpu硬盘储存空间图片的后期维护性

请问各位d大的,这种base64储存图片的方案,是否可行呢?



作者: jqbaobao    时间: 2021-10-10 13:01
研究研究图床技术吧
作者: xshell    时间: 2021-10-10 13:02
大图用base64转出来很长吧
作者: ApkB    时间: 2021-10-10 13:04
HZ的nvme应该能够满足你
作者: buyabag    时间: 2021-10-10 13:04
jqbaobao 发表于 2021-10-10 13:01
研究研究图床技术吧

图床毕竟不可靠,不在自己控制范围里~
作者: 小旭    时间: 2021-10-10 13:05
本帖最后由 小旭 于 2021-10-10 13:06 编辑

别折腾那些了 直接干脆点m.2 你就算折腾了B64你还是要换硬盘
还有个办法就是CDN节点缓存 缓存之后直接从CDN节点读取 不经过服务器
作者: huaheshang    时间: 2021-10-10 13:06
不合适,
作者: 大腿    时间: 2021-10-10 13:06
上cdn呐  分流啊
作者: buyabag    时间: 2021-10-10 13:06
xshell 发表于 2021-10-10 13:02
大图用base64转出来很长吧

这倒是,不过只要可行的话,base64转出来也是一劳永逸的事,也算划算了.
作者: dvbhack    时间: 2021-10-10 13:06
读图片是IO,读HTML就不是io?原本是并发10个http请求,每个小于500k,现在变成单线程读取好几M甚至几十M。你可真是个人才
作者: buyabag    时间: 2021-10-10 13:08
dvbhack 发表于 2021-10-10 13:06
读图片是IO,读HTML就不是io?原本是并发10个http请求,每个小于500k,现在变成单线程读取好几M甚至几十M。 ...

大佬你这说到点子上了,我就是在考虑这个。到底是多次读取随机小文件io压力大,还是一次读取大文件压力大?
作者: Reverie    时间: 2021-10-10 13:09
静态不用CDN,是等爱情吗?
作者: 小夜    时间: 2021-10-10 13:10
我觉得还是图片分流吧,例如pic.your.com单独做图床,然后,分个五到七台机器上去。这样哪怕断一个二个,也只会对用户起最小范围的影响。
作者: dvbhack    时间: 2021-10-10 13:11
buyabag 发表于 2021-10-10 13:08
大佬你这说到点子上了,我就是在考虑这个。到底是多次读取随机小文件io压力大,还是一次读取大文件压力大 ...

建议图片走CDN服务分流。现在CDN费用那么低
作者: 晴晴晴    时间: 2021-10-10 13:13
只能缓存。。。 没有办法
作者: Quanyin    时间: 2021-10-10 13:14
静态文件上CDN啊,最差上个CF也行
作者: 给勃公子看茶    时间: 2021-10-10 13:14
b64并不会解决目前的问题。图片站必需上CDN。
作者: c473432    时间: 2021-10-10 13:15
图片存到别的服务器上, 业务分离才是正确方法. 而不是你这种方法
作者: 临云    时间: 2021-10-10 13:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: injy    时间: 2021-10-10 13:18
既然这样,不如把所有图片预先全部读到内存里面,需要的时候从内存取
作者: hjz    时间: 2021-10-10 13:21
我的网站没几张图片,除了SVG格式的图片以外,全部都是使用Base64编码的,速度不错。
作者: Showfom    时间: 2021-10-10 13:24
真是个人才,图片变成 base64 以后体积要增加多少哦,还不是一样废 IO
作者: LEB    时间: 2021-10-10 13:26
那你数据库好大。。。。。
作者: 周润发    时间: 2021-10-10 13:28
丢 静态存储不就行了 CF COS 等都有 什么都不用担心 费用比自建便宜
作者: xinai    时间: 2021-10-10 13:28
图片经 base64 编码会增加硬盘占用

https://www.zhihu.com/question/31155574

作者: 专业黑人抬棺    时间: 2021-10-10 13:30
自建图床,图库分离
作者: ChenYFan    时间: 2021-10-10 13:36
大哥,base64会增加三分之一的大小并且不可缓存,解码慢,你这硬盘能省多少。。。
作者: acg88    时间: 2021-10-10 13:50
可以,之前看一个黄站就是把图换成base64
作者: streamer    时间: 2021-10-10 14:12
后排出售腾讯cdn
作者: taiyi747    时间: 2021-10-10 14:51
上cdn吧,图片缓存期拉高,有效减少读写
作者: qibinghua    时间: 2021-10-10 14:55
上nvme最好
作者: 华为任正非    时间: 2021-10-10 15:00
上SSD或者套CDN,别无他法
作者: 马杰克    时间: 2021-10-10 15:24
上cdn分流比较靠谱
作者: 临云    时间: 2021-10-10 17:04
提示: 作者被禁止或删除 内容自动屏蔽
作者: Syc    时间: 2021-10-10 19:42
临云 发表于 2021-10-10 17:04
@Syc

废话,我当然知道浏览器本地解密,不浪费浏览器的CPU吗,图片多了大量运算,被浏览器、广告插件当成 ...

浏览器确实会多占CPU,不过后面的…太好笑了,太好笑了
images base64 属于 CSSOM 渲染 ,   no  javascript    你能css挖矿的话建议申请专利
作者: 山本大意失仙人    时间: 2021-10-10 19:46
买oss专门放图片
作者: dragonfsky    时间: 2021-10-10 19:49
没搞明白 转了不一样是占io的吗
作者: kucn    时间: 2021-10-10 19:51
他图片应该不方便用国内的CDN吧。




欢迎光临 全球主机交流论坛 (https://loc.fffk.eu.org/) Powered by Discuz! X3.4