1 / 47
文档名称:

hbase-运维.pptx

格式:pptx   大小:555KB   页数:47页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

hbase-运维.pptx

上传人:文库旗舰店 2018/6/19 文件大小:555 KB

下载得到文件列表

hbase-运维.pptx

相关文档

文档介绍

文档介绍:宁海元***@NinGoo
Ver:
Hbase运维碎碎念
2011年6月
Hbase运维碎碎念
这是一个读书笔记,可能有大量的理解错误
最后的参考文档比这个ppt更有价值
后续对Hbase有更多的理解,随时会更新ppt
你需要有基本的java概念和基本的Hbase概念
Hbase运维碎碎念
Agenda
JAVA
HDFS
HBase
Hbase运维碎碎念
tmpwatch
运行一段时间后,发现jps无法列举java进程了,崩溃。。。
Why?
Java需要将pid信息写入到/tmp/hsperfdata_username
tmpwatch定期清理/tmp
修改sudo vi /tmp/
/usr/sbin/tmpwatch “$flags”-x /tmp/hsperfdata_* …
Hbase运维碎碎念
JVM Heap
图片出处:hnetwork/java/javase/gc-tuning-6-
Hbase运维碎碎念
JVM Heap
简单来说,Heap分为年轻代(Young)/年老代(Old/ Tenured)/持久代(Perm)
-Xms: Heap初始尺寸
-Xmx: Heap最大尺寸
-Xmn: 年轻代尺寸
-XX:NewRatio: 设置Young与Old的大小比例,-server时默认为1:2
-XX:SurvivorRatio: 设置Eden与Survivor的比例,默认为32。
-XX:MaxPermSize: 持久代大小,默认64M。
-XX:NewSize: 年轻代大小
-XX:MaxNewSize: 年轻代最大尺寸
-Xss: 每个线程的stack尺寸
-XX:MinHeapFreeRatio:空余堆内存小于40%时,JVM就会增大堆。
-XX:MaxHeapFreeRatio:空余堆内存大于70%时,JVM会减少堆。
Hbase运维碎碎念
JVM Heap
年轻代分为Eden, Survior 1, Survior2
新对象在Eden区分配内存。
GC时,将Eden和有对象的Survior区(From Space)的所有对象复制到另外一个Survior(To Space),然后清空Eden和原Sruvior。
当一个对象在from和to之间复制的次数超过一定阀值(-XX:MaxTenuringThreshold)后,进入到年老代。如果是CMS GC,这个阀值默认为0,也就是经过一次copy后就进入年老代。-XX:+PrintTenuringDistribution可以查看详细统计信息。
持久代不GC,除非CMS GC且显式设置 XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled
Hbase运维碎碎念
JVM GC
GC分为对Young的GC(minor)和同时对Young和Old的GC(Major)
Serial GC,单线程GC,适合小Heap单CPU。-XX:+UseSerialGC
Parallel GC,也称Throughput GC。与第一种GC不同在于Young区是多线程的,但Old区仍然单线程。-XX:+UseParallelGC。Java : -XX:+UseParallelOldGC。GC的线程数可以通过-XX:ParallelGCThreads=<N>调整。通过-XX:MaxGCPauseMillis=<N>可以提示最大GC暂停时间,设置此参数会导致JVM自动调整Heap大小和一些JVM相关参数,慎用。
Concurrent GC,也称CMS GC,可以在Old区的回收同时,运行应用程序。-XX:+UseConcMarkSweepGC参数启动该GC。该GC还可以开启增量模式-XX:+CMSIncrementalMode
Hbase运维碎碎念
JVM GC
Concurrent GC
暂停所有线程,标记活跃对象的root,然后恢复线程访问
使用一个或者多个CPU标记所有活跃对象,应用线程访问不受影响。
使用一个CPU标记第2步过程中有修改的对象。
暂停所有线程,标记前面2,3步过程中有修改的对象,然后恢复线程访问。
使用一个CPU,并发的将非活跃对象清除,内存释放给free list。
使用一个CPU,并发的重整heap大小,并准备下一轮GC需要的数据结构。
Hbase运维碎碎念
JVM GC
Concurrent GC
并发GC更消耗CPU,假如有N个CPU,GC可使用1 <= K <= ceil(N/4) 。
并发GC可能造成Heap