鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

读写测试用例

用例分析

随机写:随机写CPU平均占用为8%,但是会产生大量的IO。主要是为HBase写hlog、memstore flush和compaction三个流程会产生大量IO。其中写hlog会产生大量的小IO。因此该用例对IO性能比较敏感,同样对CPU性能不敏感,通用由于有较多的网络小包,因此通过使能网卡lro会使写的性能提升。

随机读:随机读用例整体CPU资源利用很低,整体的IO也是在用例初始时进行hfile的读取到blockcache中,之后数据会有大量的cache命中。由于网络中存在的较多小包,因此主要使能了网卡lro功能,对网络小包进行聚合。

顺序扫描:顺序扫描用例CPU资源利用也很低,整体的IO也是在用例初始时进行hfile的读取到blockcache中,之后的数据都是从blockcache中进行读取。该用例和随机读用例的流程是相同的,只是在读取keyvalue时会顺序的读取一段连续的keyvalue区域。因此scan时的网络包聚合效果不明显。

Slow sync调优

问题描述

HBase在高并发put场景(随机写用例),由于同步写WAL机制导致随机写性能很差,日志中打印sync时延很高。

问题分析

由于同步写WAL机制,必须保证数据落盘才能保证可靠性,所以导致在写流程中写WAL时延很高,严重影响性能。

解决方法

硬盘组单盘创建RAID 0,然后配置RAID控制卡Cache策略为RAWBC,使用RAID控制卡的Cache做回写,而不是Write through透写,可以极大提高随机写性能。

RAID组Cache策略配置:

RWBC -> Read ahead + Write back + Cached IO

网卡参数调优

在HBase读写测试场景,测试的记录条的大小为1KB,因此使能网卡lro功能和调大网卡Ring buffer。将网络中的小包进行聚合,提高网络性能。