网站图片全部使用base64可行吗?
侧边栏壁纸
  • 累计撰写 56,973 篇文章
  • 累计收到 0 条评论

网站图片全部使用base64可行吗?

James
2021-10-10 / 0 评论 / 70 阅读 / 正在检测是否收录...

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

现在能想到几种办法,硬件上的是:

1.加大内存,128G以上的内存做文件缓存,应该能缓解。

2.使用raid0/增加多台机器,简单粗暴。

3.直接一步到位上SSD,从根本上解决io问题。

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

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

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


-----------------------------------------------------
**网友回复**:

读图片是IO,读HTML就不是io?原本是并发10个http请求,每个小于500k,现在变成单线程读取好几M甚至几十M。你可真是个人才


网友回复:

图片经base64编码会增加硬盘占用

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




网友回复:

真是个人才,图片变成base64以后体积要增加多少哦,还不是一样废IO


网友回复:

引用:jqbaobao发表于2021-10-1013:01

研究研究图床技术吧


网友回复:

别折腾那些了直接干脆点m.2你就算折腾了B64你还是要换硬盘

还有个办法就是CDN节点缓存缓存之后直接从CDN节点读取不经过服务器


网友回复:

引用:xshell发表于2021-10-1013:02

大图用base64转出来很长吧


网友回复:

引用:dvbhack发表于2021-10-1013:06

读图片是IO,读HTML就不是io?原本是并发10个http请求,每个小于500k,现在变成单线程读取好几M甚至几十M。...


网友回复:

我觉得还是图片分流吧,例如pic.your.com单独做图床,然后,分个五到七台机器上去。这样哪怕断一个二个,也只会对用户起最小范围的影响。


网友回复:

引用:buyabag发表于2021-10-1013:08

大佬你这说到点子上了,我就是在考虑这个。到底是多次读取随机小文件io压力大,还是一次读取大文件压力大...


网友回复:

b64并不会解决目前的问题。图片站必需上CDN。


网友回复:

图片存到别的服务器上,业务分离才是正确方法.而不是你这种方法


网友回复:

不如把他存到oss或者图床里面,base64加密解密也浪费CPU


网友回复:

既然这样,不如把所有图片预先全部读到内存里面,需要的时候从内存取


网友回复:

我的网站没几张图片,除了SVG格式的图片以外,全部都是使用Base64编码的,速度不错。


网友回复:

真是个人才,图片变成base64以后体积要增加多少哦,还不是一样废IO


网友回复:

丢静态存储不就行了CFCOS等都有什么都不用担心费用比自建便宜


网友回复:

图片经base64编码会增加硬盘占用

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




网友回复:

大哥,base64会增加三分之一的大小并且不可缓存,解码慢,你这硬盘能省多少。。。

0