我有一个关于在ramdisk中使用apachehbase的一般性问题。在一个表中有大量数据,总共约25gb。有了这些数据,我用一个java程序做了一些基本的聚合。
由于我有足够的可用ram,我尝试使用tmpfs将此数据集放入ramdisk:
mount -t tmpfs -o size=40G none /home/user/ramdisk
然后我停止hbase,将数据文件夹的内容复制到ramdisk中。最后,我创建了一个符号链接,将旧数据目录链接到新数据目录,并再次启动hbase。
它可以工作,但是当我现在处理聚合时,它变得比以前稍微慢了一些。
如果hbase压缩数据(snappy压缩被激活)等等,我可以想象使用ramdisk没有那么大的影响。。。但我猜不出为什么更快的媒体会导致数据访问速度变慢。剩余的可用ram足够多,因此这不会成为瓶颈。
也许有人对此有个大概的想法或见解?
1条答案
按热度按时间jdg4fx2g1#
我认为这将是两件事之一:a:在分配磁盘之前,您真的有超过40g的可用ram吗?我印象深刻&如果你真的有那么多空闲的话,但是看到ram空闲之后并不能说明你不仅仅使用了一大块交换空间。
b:压缩(即使是像snappy这样快的东西)也会影响性能。。。特别是对于像数据库引擎这样有很多古怪优化的东西。ramdisk的速度应该快得离谱,这是对的,但是它必须跳转到所有的数据库查询上,然后必须跳转到所有的压缩图像上来解压块,必须有相当大的开销。