现在有3kw的数据,单条数据都很小的,如果按key-value来看的话,key就是32位的md5字符串,value按平均算大概是100字节左右。 现在需要将这些数据做缓存以在高并发的时候依然可以快速响应。 因为这些数据基本没有冷热数据之分,所以需要将全部数据都放到缓存
现在有3kw的数据,单条数据都很小的,如果按key-value来看的话,key就是32位的md5字符串,value按平均算大概是100字节左右。
现在需要将这些数据做缓存以在高并发的时候依然可以快速响应。
因为这些数据基本没有冷热数据之分,所以需要将全部数据都放到缓存中。
1、直接生成静态文件,利用nginx对静态文件的高效做静态缓存。
- 当时服务器硬件资源有限,所以就采用这种方式,一直源用至今。
- 服务器间通过nfs来共享
- 太多小文件,不方便管理
- nfs不方便运维与扩展
-
文件内容很小(100字节左右),3kw大概就是2.5g大小左右
- 不过文件存储的时候和硬盘分区的族大小有关,在这里磁盘分区的族大小为8k,所以尽管文件内容只有100字节,但是实际存储到磁盘上的时候单个文件其实是8k
- 所以3kw的文件世界占的磁盘空间大约为:200g左右( 严重浪费空间啊)
2、redis(v2.2.11)【kv数据库】
- 听同事说开启vm会使性能急剧下降,所以基本无视vm,数据全放内存。
- key为32位md5字符串
- 测试数据:10w数据大概占内存20m
- 测试数据:500w数据大概占内存1g,持久化的rdb数据文件大概350m
- 推算3kw数据:内存6g,持久化的rdb数据文件大概为2g(压缩了?)
- 因为redis在持久化的时候内存会加倍,和考虑到数据的增长,所以需要1台20g内存的机器基本就没问题了(容灾啥的另算)。
- redis非常快,如果硬件条件没问题,基本选这个最好了。
3、moosefs(mfs)【分布式文件存储系统】
- mfs支持nfs的方式mount到本地直接操作(如使用mfs,则现在的架构基本不用改)
- 最基本的需要一台主控服务器(master server)、一台数据服务器(chunk server)
- 文件和目录的索引需要全部加载到主控服务器的内存中,所以对主控服务器的内存有一定的要求
- 写入30w文件,到20w的时候写入就开始下降得厉害了(我的5400转的笔记本硬盘)
- 30w文件,4w目录,主控服务器占用大概120m内存
- 文件存储方式貌似和普遍的文件一样单个存储的(不确定),30w文件大概占了2.4g的磁盘空间(同样是8k一个文件)。
- 小文件一样很多,不方便维护与迁移(不知是否我设置不对?)。
- 内存、硬盘都占用得比较多,而且性能相对来说不是很出众。
- 所以这个基本不考虑了。
作者:qleelulu??出处: http://qleelulu.cnblogs.com/
作者:zeo112140 发表于2013-7-11 10:28:48 原文链接
阅读:7 评论:0 查看评论
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!