001

  1. 环境配置说明:
  2. 5G内存
  3. 30G硬盘
  4. 遇到的问题:
  5. Hbase进行数据迁移的时候,出现RS宕机,HM宕机的现象

调优方向:

  1. 001
  2. HBase 客户端写入缓冲 将原来的2M 调至1M
  3. hbase.client.write.buffer
  4. ---
  5. 写入缓冲区大小(以字节为单位)。较大缓冲区需要客户端和服务器中有较大内存,因为服务器将实例化已通过的写入缓冲区并进行处理,这会降低远程过程调用 (RPC) 的数量。为了估计服务器已使用内存的数量,请用值“hbase.client.write.buffer”乘以“hbase.regionserver.handler.count
  1. 002
  2. HBase Memstore 刷新大小 将原来的128M 调至 64M
  3. hbase.hregion.memstore.flush.size
  4. memstore 大小超过此值(字节数),Memstore 将刷新到磁盘。通过运行由 hbase.server.thread.wakefrequency 指定的频率的线程检查此值。
  1. 003
  2. HBase RegionServer Java 堆栈大小(字节) 将原来的4 吉字节 调至 50兆字节
  3. Java 进程堆栈内存的最大大小(以字节为单位)。已传递到 Java -Xmx
  1. 004
  2. HBase RegionServer Java 配置选项
  3. 这些参数将作为 Java 命令行的一部分传递。通常,垃圾回收标志、PermGen 或额外调试标志将传递到此处。
  4. -XX:+UseCompressedOops \\ 压缩指针,解决内存占用
  5. -XX:+UseParNewGC \\ 设置年轻代为并行收集
  6. -XX:+UseConcMarkSweepGC \\ 使用CMS内存收集
  7. -XX:+CMSClassUnloadingEnabled
  8. // 相对于并行收集器,CMS收集器默认不会对永久代进行垃圾回收。如果希望对永久代进行垃圾回收,可用设置标志-XX:+CMSClassUnloadingEnabled。 在早期JVM版本中,要求设置额外的标志-XX:+CMSPermGenSweepingEnabled。注意,即使没有设置这个标志,一旦永久代耗尽空 间也会尝试进行垃圾回收,但是收集不会是并行的,而再一次进行Full GC。
  9. -XX:+UseCMSCompactAtFullCollection // 使用并发收集器时,开启对年老代的压缩
  10. -XX:CMSFullGCsBeforeCompaction=0 //由于并发收集器不对内存空间进行压缩,整理,所以运行一段时间以后会产生”碎片”,使得运行效率降低.此值设置运行多少次GC以后对内存空间进行压缩,整理
  11. -XX:+CMSParallelRemarkEnabled // 降低标记停顿
  12. -XX:CMSInitiatingOccupancyFraction=75 // 使用cms作为垃圾回收使用75%后开始CMS收集
  13. -XX:SoftRefLRUPolicyMSPerMB=0 // 每兆堆空闲空间中SoftReference的存活时间