12|还有哪些调优可以提升性能?
彭旭
你好,我是彭旭。
上节课我们整体了解了手机云服务系统基于 HBase 存储的架构设计,以及迁移过程遇到的一些问题。
这节课我们聚焦在性能问题上,看看还有哪些调优的手段。
首先从客户端着手。不过,客户端实际上不能调优性能,只能用来减轻服务端的压力。
客户端调优
那客户端怎么减轻服务端压力呢?
第一个方法,批量提交。HBase 客户端对数据的变更等都需要跟 RegionServer 进行 RPC 通信。默认情况下,每一个操作都会发起一个跟 RegionServer 的 RPC 请求。
像下面这张图一样。Put 插入 4 行数据,需要跟 RegionServer 服务器进行 4 次 RPC 通信。
为了提高数据传输效率,减少建立连接的时间和 I/O 消耗。我们可以使用 BufferedMutator,将数据的变更在客户端缓存,等变更的数据量达到配置的缓存大小后,再批量发送到服务端,减少 RPC 调用次数。
可以看到,启用客户端缓存后,这 4 行数据的修改从原来的 4 个 RPC 请求,减少到了 2 个 RPC 请求。
当然,客户端缓存数据有一个风险,就是客户端程序如果出现故障,比如宕机,那修改的数据可能就会丢失。
第二个方法,就是设置合理的重试次数与间隔。当客户端捕获到了非 DoNotRetryIOException 子类的异常后,HBase 客户端就会发起重试,客户端重试的目标是请求出错后能够得到及时响应,但是也要避免重试过多、过快,给服务端带来过大的压力,导致服务端雪崩。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
1. 客户端调优:使用BufferedMutator批量提交数据,减少RPC调用次数;设置合理的重试次数与间隔,避免重试过多过快给服务端带来过大的压力。 2. 服务端调优:在HDFS配置多磁盘,提升系统吞吐量与性能;开启短路径读,消除RPC调用,转化为本地文件读取;通过DDL优化,使用数据块编码、布隆过滤器、数据压缩、预分区等方式优化数据存储与提取,降低写入导致的额外开销。 3. IN_MEMORY_COMPACTION配置:通过在内存中合并MemStore,减少将数据刷写到磁盘的次数,降低了写入导致的额外开销,减少了磁盘空间的占用,提升了写入性能. 4. JVM内存调优:配置合适的JVM内存与GC算法,给机器预留10%以上的内存,避免OOM异常;HBase堆内存配置一般16G以上,通常在32G;选用合适的GC策略,如G1 GC,以提升系统性能。 These are the key points from the article, focusing on client and server optimization, in-memory compaction, and JVM memory tuning.
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式数据库从入门到实战》,新⼈⾸单¥59
《分布式数据库从入门到实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论