我们缓存一些文件图片或者把生成的结果缓存成 FileCache,但是文件保存在磁盘上,大量请求过来不会造成磁盘随机 IO 变多而造成性能问题吗?
1
msg7086 2018-12-08 13:10:48 +08:00
可以加内存,让内存来顶。热数据本来就适合放固态硬盘。液态的性能不行。
|
2
cc959798 OP @msg7086 是的,可以放在 shm,但是一般的静态自资源如果特别多的话都放在磁盘上就会有问题吧,大量的随机 io 产生,普通磁盘就顶不住了,就算加 ssd,量大了恐怕也不行
|
3
echo1937 2018-12-08 15:31:40 +08:00 via iPhone
会,尤其是海量小文件的读取
所以才会有 CDN 啊。 |
5
Lax 2018-12-08 15:37:23 +08:00
fs 一般是利用到 page cache 了,只要命中率高磁盘的压力不大。
你所说的大量请求还要看具体有多大。压测场景很容易把磁盘利用率跑满,实际业务中不是那么容易的。 除非你的业务特殊到文件的数量和随机性都特别高,其他情况下都不会遇到什么性能问题。 |
6
chickplilita 2018-12-08 16:05:38 +08:00
@yukiww233 哈哈 我也想到的是液态金属机器人
|
8
cc959798 OP @Lax 就算是有 cache,如果文件数量太多也会有问题吧,而且没有热数据的情况下,大量小文件随机 io 估计磁盘就跑满了
|
11
Lax 2018-12-10 12:11:37 +08:00
@cc959798 “上万张”图片并不是很大的量啊,你可以算算容量是多少。
如果是 5k 以内的小文件,放内存绰绰有余。如果文件较大比如 100k,也不过才几 G 内存。更大的文件就变成顺序读问题了。 |
12
cc959798 OP @Lax 肯定不止 5k,当然这得看业务场景,不过我指的缓存是 page cache,一般的 page cache 也没有几个 g 吧,如果是 ssd 的话肯定会好很多,放个几十 g 也不会太慢,到时候带宽肯定成为瓶颈了
|
13
icegreen 2018-12-14 17:52:54 +08:00
还是看具体的业务场景;
在访问量足够大的情况下,一定会出现瓶颈的, 然后就针对性的优化吧; 几年前维护过一个股票行情系统,纯粹的内存读写都成了瓶颈,甚至自己实现了一套内存存储工具; 但是对于访问量没有那么大的系统, 考虑的太多就成了过度设计. 所以还是放到实际的业务规模下考虑比较实际一些. |
14
wysnylc 2018-12-19 10:39:07 +08:00
( )
什么水平大家心里有数 |