---
title: 读写测试用例
description: "随机写：随机写CPU平均占用为8%，但是会产生大量的IO。主要是为HBase写HLog、MemStore flush和Compaction三个流程会产生大量IO。其中写HLog会产生大量的小IO。因此该用例对IO性能比较敏感，同样对CPU性能不敏感，通常由于有较多的网络小包，因此通过使能网卡LRO会使写的性能提升。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengbds/ecosystemEnable/HBase/topic_0000001154867009.html
sourcePath: /source/zh/kunpengbds/ecosystemEnable/HBase/topic_0000001154867009.html
indexId: 66c370654024df5eb3953558ce785de1d1881b98c9e089d0811175c75cc6d2ce71
---
# 读写测试用例

#### 用例分析

随机写：随机写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。将网络中的小包进行聚合，提高网络性能。
