hbase GC优化】的更多相关文章

编辑配置文件 编辑 hbase-env.sh   export HBASE_OPTS="$HBASE_OPTS -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSParallelRemarkEnabled -X…
过去的一年里,我们准备在Ali-HBase上突破这个被普遍认知的痛点,为此进行了深度分析及全面创新的工作,获得了一些比较好的效果.以蚂蚁风控场景为例,HBase的线上young GC时间从120ms减少到15ms,结合阿里巴巴JDK团队提供的利器--AliGC,进一步在实验室压测环境做到了5ms.本文主要介绍我们过去在这方面的一些工作和技术思想. 背景 JVM的GC机制对开发者屏蔽了内存管理的细节,提高了开发效率.说起GC,很多人的第一反应可能是JVM长时间停顿或者FGC导致进程卡死不可服务的情…
本文借鉴之前HBaseConAsia2017,小米公司对hbase g1 gc的优化分享.此外还可以参考apache官方博客对于hbase g1 gc优化的一篇文章(Tuning G1GC For Your HBase Cluster) g1 gc的优化主要是对一些重要的参数进行调整,然后执行压力测试,分析G1的日志.G1日志处理可以使用HubSpot开发的一个Python工具, 叫做 gc_log_visualizer , 这个工具通过正则提取日志数据, 然后绘制成监控图, 比较方便查看G1的…
zookeeper.session.timeout默认值:3分钟(180000ms)说明:RegionServer与Zookeeper间的连接超时时间.当超时时间到后,ReigonServer会被Zookeeper从RS集群清单中移除,HMaster收到移除通知后,会对这台server负责的regions重新balance,让其他存活的RegionServer接管.调优:这个timeout决定了RegionServer是否能够及时的failover.设置成1分钟或更低,可以减少因等待超时而被延长…
HBase 的优化3.1.高可用在 HBase 中 Hmaster 负责监控 RegionServer 的生命周期,均衡 RegionServer 的负载,如果Hmaster 挂掉了,那么整个 HBase 集群将陷入不健康的状态,并且此时的工作状态并不会维持太久.所以 HBase 支持对 Hmaster 的高可用配置.1) 关闭 HBase 集群(如果没有开启则跳过此步) $ bin/stop-hbase.sh2) 在 conf 目录下创建 backup-masters 文件 $ touch c…
HBase的优化 高可用 在 HBase 中 Hmaster 负责监控 RegionServer 的生命周期,均衡 RegionServer 的负载,如果 Hmaster 挂掉了,那么整个 HBase 集群将陷入不健康的状态,并且此时的工作状态并不会维 持太久.所以 HBase 支持对 Hmaster 的高可用配置. 关闭 HBase 集群 ( 如果没有开启则跳过此 步) ) $ bin/stop-hbase.sh 在 在 conf 目录下创建 backup-masters 文件 $ touch…
HDFS(hdfs-site.xml)相关调整 dfs.datanode.synconclose = true dfs.datanode.synconclose set to false in hdfs-site.xml: data loss is possible on hard system reset or power loss mount ext4 with dirsync! Or use XFS dfs.datanode.sync.behind.writes = true (defau…
本节主要描述关于垃圾回收器性能的三个指标,三个关于垃圾回收器优化的基本原则,以及优化HotSpot VM的垃圾回收器的信息收集,在这些指标中权衡以及信息的收集是非常重要的. 性能指标    吞吐量:衡量垃圾回收器运行在性能峰值的时候不需要关心垃圾回收器暂停的时间或者需要占用内存的能力.    延迟:衡量垃圾回收器最小化甚至消灭由垃圾回收器引起的暂停时间和应用抖动的能力.    内存占用:衡量为了高效的运行,垃圾回收器需要的内存.        一项指标的提升,往往需要牺牲其他一项或者两项指标.换…
protobuf-net优化效果图 protobuf-net是Unity3D游戏开发中被广泛使用的Google Protocol Buffer库的c#版本,之所以c#版本被广泛使用,是因为c++版本的源代码不支持Unity3D游戏在各个平台上的动态库构建.它是一个网络传输层协议,对应的lua版本有两个可用的库:一个是proto-gen-lua,由tolua作者开发,另外一个是protoc,由云风开发.protobuf-net在GC上有很大的问题,在一个高频率网络通讯的状态同步游戏中使用发现GC过…
hbase性能优化总结 1. 表的设计 1.1 Pre-Creating Regions 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分.一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入HBase时,会按照region分区情况,在集群内做数据的负载均衡. 有关预分区,详情参见:Table Creation: Pre-Creating…
原文转载自美团从实际案例聊聊Java应用的GC优化,感谢原作者的贡献 当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化.但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的难度. 即便如此,GC调优也不是无章可循,仍然有一些通用的思考方法.本篇会介绍这些通用的GC优化策略和相关实践案例,主要包括如下内容: 优化前准备: 简单回顾JVM相关知识.介绍GC优化的一些通用策略.优化…
为什么需要优化GC? JAVA的GC是面试必考的题目,可是在实际项目中什么时候使用GC哪?或者应该什么时候优化GC哪?有句名言:“GC优化永远是最后一项任务”. 在使用GC之前,应该考虑一下进行GC的最根本原因:垃圾收集器需要清除在程序中创建的对象,GC执行的次数即需要被垃圾收集器清理的对象个数,与创建对象的数量成正比,因此,首先应该减少创建对象的数量,我们应该从小事做起,比如需要使用StringBuilder 或者StringBuffer 来替代String:应该尽量少的输出日志: 但是,我们…
一个即将上线的go 写的高频服务,压测的时候发现 gc 特别高,高到10%-15% 左右了,本文记录下优化 gc 的过程和和思路.线上环境1.10. 首先,查看gc 是否有异常,我们可以使用 gctrace 跟踪实时的gc .执行下面命令可以看到gc 的实时信息. GODEBUG=gctrace=1 go run cmd/agent_bin.go 输出结果如下: gc 45 @37.801s 11%: 0.19+627+0.29 ms clock, 0.38+424/621/0+0.59 ms…
Hadoop生态圈-HBase性能优化 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.…
原文链接:HBase性能优化方法总结(一):表的设计 本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客. 下面是本文总结的第一部分内容:表的设计相关的优化方法. 1. 表的设计 1.1 Pre-Creating Regions 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分…
转自:http://gad.qq.com/article/detail/25645 前言 Unity下的C#GC Alloc(下面简称gc)是个大问题,而嵌入一个动态类型的Lua后,它们之间的交互很容易就产生gc,各种Lua方案也把这作为性能优化的重点.这些优化说穿了其实不复杂. 元凶在这里 先看看这两个函数 1 2 3 4 5 6 7 8 9 int inc1(int i) {     return i + 1; }   object inc2(object o) {     return (…
转自美团点评技术博客:https://tech.meituan.com/jvm_optimize.html 当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化.但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的难度.即便如此,GC调优也不是无章可循,仍然有一些通用的思考方法.本篇会介绍这些通用的GC优化策略和相关实践案例,主要包括如下内容: 优化前准备: 简单回顾JVM相关知…
https://tech.meituan.com/jvm_optimize.html 当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步提高性能,称为GC优化.但GC算法复杂,影响GC性能的参数众多,且参数调整又依赖于应用各自的特点,这些因素很大程度上增加了GC优化的难度.即便如此,GC调优也不是无章可循,仍然有一些通用的思考方法.本篇会介绍这些通用的GC优化策略和相关实践案例,主要包括如下内容: 优化前准备: 简单回顾JVM相关知识.介绍GC优化的一些…
HBase性能优化方法总结 1. 表的设计 1.1 Pre-Creating Regions 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分.一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入HBase时,会按照region分区情况,在集群内做数据的负载均衡. 有关预分区,详情参见:Table Creation: Pre-Creatin…
一.hbase读优化 客户端优化 1.scan缓存是否设置合理? 优化原理:一次scan请求,实际并不会一次就将所有数据加载到本地,而是多次RPC请求进行加载.默认100条数据大小. 优化建议:大scan场景下将scan缓存从100增大到500或者1000,以减少RPC次数 2.get请求是否可以使用批量请求? 优化原理:Hbase分别提供了单条get以及批量get的API接口,使用批量get接口可以减少客户端到RegionServer之间的PRC连接数,提高读取性能. 3.请求是否可以显示指定…
本篇原文作者是 LinkedIn 的 Swapnil Ghike,这篇文章讲述了 LinkedIn 的 Feed 产品的 GC 优化过程,虽然文章写作于 April 8, 2014,但其中的很多内容和知识点非常有学习和参考意义. 背景 高性能应用构成了现代网络的支柱.LinkedIn 内部有许多高吞吐量服务来满足每秒成千上万的用户请求.为了获得最佳的用户体验,以低延迟响应这些请求是非常重要的. 例如,我们的用户经常使用的产品是 Feed -- 它是一个不断更新的专业活动和内容的列表.Feed 在…
一.服务端调优 1.参数配置 1).hbase.regionserver.handler.count:该设置决定了处理RPC的线程数量,默认值是10,通常可以调大,比如:150,当请求内容很大(上MB,比如大的put.使用缓存的scans)的时候,如果该值设置过大则会占用过多的内存,导致频繁的GC,或者出现OutOfMemory,因此该值不是越大越好. 2).hbase.hregion.max.filesize :配置region大小,0.94.12版本默认是10G,region的大小与集群支持…
垃圾回收优化当region服务器处理大量的写入负载时,繁重的任务会迫使JRE默认的内存分配策略无法保证程序的稳定性 所以我们可能需要对region服务器的垃圾回收机制进行一些参数调整(因为master并不处理实际任务,所以没有优化的必要) 首先来了解JAVA内存中的几个概念 在HBase构架中我们可以知道 数据会被写入到memstore内存中直到达到一个阈值之后刷写持久化到磁盘 但是由于数据是客户端在不同时间写入的,这些数据占据的JAVA内存中的堆空间很可能是不连续的,所以JAVA虚拟机的内存会…
使用hbase的目的是为了海量数据的随机读写,但是在实际使用中却发现针对随机读的优化和gc是一个很大的问题,而且hbase的数据是存储在Hdfs,而Hdfs是面向流失数据访问进行设计的,就难免带来效率的下降.下面介绍一下Facebook Message系统在HBase online storage场景下的一个案例(<Apache Hadoop Goes Realtime at Facebook>, SIGMOD 2011),最近他们在存储领域顶级会议FAST2014上发表了一篇论文<An…
高可用 在HBase中Hmaster负责监控RegionServer的生命周期,均衡RegionServer的负载,如果Hmaster挂掉了,那么整个HBase集群将陷入不健康的状态,并且此时的工作状态并不会维持太久.所以HBase支持对Hmaster的高可用配置. 1) 关闭HBase集群(如果没有开启则跳过此步) $ bin/stop-hbase.sh 2) 在conf目录下创建backup-masters文件 $ touch conf/backup-masters 3) 在backup-m…
近期在处理HBase的业务方面常常遇到各种瓶颈,一天大概一亿条数据,在HBase性能调优方面进行相关配置和调优后取得了一定的成效,于是,特此在这里总结了一下关于HBase全面的配置,主要参考我的另外两篇文章: (1)http://blog.csdn.net/u014297175/article/details/47975875 (2)http://blog.csdn.net/u014297175/article/details/47976909 在其基础上总结出来的性能优化方法. 1.垃圾回收优…
1.为何要 BulkLoad 导入?传统的 HTableOutputFormat 写 HBase 有什么问题? 我们先看下 HBase 的写流程: 通常 MapReduce 在写HBase时使用的是 TableOutputFormat 方式,在reduce中直接生成put对象写入HBase,该方式在大数据量写入时效率低下(HBase会block写入,频繁进行flush,split,compact等大量IO操作),并对HBase节点的稳定性造成一定的影响(GC时间过长,响应变慢,导致节点超时退出,…
本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,这里涉及的不多,这部分可以参考:淘宝Ken Wu同学的博客. 1. 表的设计 1.1 Pre-Creating Regions 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分.一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入H…
http://1234n.com/?post/yzsrwa 最近一段时间对<仙侠道>的服务端进行了一系列针对GC的调优,这里跟各位分享一下调优的经验. 游戏第一次上线的时候,大部分精力都投入在做cpuprof和memprof找性能瓶颈和内存泄漏上,没有关注过Go的GC运行情况. 有一次cpuprof里的scanblock调用所占的比例让我注意到Go的GC所带来的性能消耗,记得那份cpuprof里,scanblock调用占到49%.也就是说有一半的CPU时间浪费在了GC上. 于是我开始研究如何进…
本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客. 下面是本文总结的第一部分内容:表的设计相关的优化方法. 1. 表的设计 1.1 Pre-Creating Regions 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据, 直到这个region足够大了才进行切分.一种可以加快批量写入速度的方法是通过预先创建一些空…