首页 > 其他分享 >Cloudera集群运维-如何优化Hbase Regionserver GC

Cloudera集群运维-如何优化Hbase Regionserver GC

时间:2024-12-29 18:27:20浏览次数:3  
标签:Cloudera 运维 回收 Regionserver XX 内存 HBase Hbase 垃圾

[前]Region Server GC调优

【警告】为 HBase 配置 JVM 垃圾回收是一项高级操作。配置不当可能对集群的性能产生重大影响。请仔细测试任何配置更改

【警告】 使用 OpenJDK 11 时,Cloudera Manager 和大多数 Cloudera Runtime 服务使用 G1GC 作为默认的垃圾回收方法。(Java 8 使用“ConcurrentMarkSweep”(CMS)进行垃圾回收。)使用 G1GC 时,垃圾回收的暂停时间更短,因此组件通常会更加响应,但它们对内存过度分配更加敏感。您应监控内存使用情况以确定是否存在内存过度分配。如果您集群使用的是Java 8,Hbase相关参数默认如下:

-XX:+UseParNewGC 
-XX:+UseConcMarkSweepGC 
-XX:CMSInitiatingOccupancyFraction=70 
-XX:+CMSParallelRemarkEnabled

【重要提示】当Hbase Regionserver的堆内存大于 32 GB 时,Java 会禁用 Compressed Oops(压缩对象指针),这会将内存分配大小从 4 字节更改为 8 字节,从而减少堆中可存储的对象数量。这意味着,将最大堆内存设置为接近 32 GB 到 47 GB 的值实际上会减少可用内存,可能导致 OutOfMemoryError(内存不足错误)。你可以给Hbase Regionserver配置32GB内存,也可以配置48GB内存,但不要配置33GB-47GB!!参考:Do not use heap sizes between 32 GB and 47 GB in Jira - Compressed OOPS | Jira | Atlassian Documentation

[一]JVM参数的解释

JVM 的垃圾回收(内存清理)可能导致 HBase 客户端出现过高的延迟。要调整垃圾回收设置,可以将相关参数传递给 JVM。

  • -XX:+UseG1GC:使用“G1”垃圾回收算法。您可以调整 G1 垃圾回收以提供一致的暂停时间,这有利于长期运行的 Java 进程,例如 HBase、NameNode、Solr 和 ZooKeeper。有关调整 G1 的更多信息,请参阅 Oracle 关于垃圾回收调整的文档。

  • -XX:MaxGCPauseMillis=value:垃圾回收暂停时间。将此值设置为您的集群可以容忍的最大延迟,同时允许尽可能多的垃圾回收。

  • -XX:+ParallelRefProcEnabled:通过在参数名称前使用 + 或 - 符号来启用或禁用并行引用处理。

  • -XX:-ResizePLAB:通过在参数名称前使用 + 或 - 符号来启用或禁用 Promotion Local Allocation Buffers(PLABs)的调整大小。

  • -XX:ParallelGCThreads=value:同时运行的并行垃圾回收线程的数量。

  • -XX:G1NewSizePercent=value:用于垃圾回收的堆内存百分比。如果该值过低,垃圾回收将无效。如果该值过高,HBase 用于其他用途的堆内存将不足。

[二]实际调优案例

1,配置GC参数

-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC 
-XX:MaxGCPauseMillis=100
-XX:ParallelGCThreads=32
-XX:G1NewSizePercent=5
-XX:+ParallelRefProcEnabled
-XX:+UseStringDeduplication #字符串去重,提高性能
-XX:-ResizePLAB  #减少gc线程间通信的东西,关闭动态提升本地buffer
-XX:+PerfDisableSharedMem #关掉统计信息的内存映射。开启在某些特殊场景下,会极大增加gc暂停时间

在CM中编辑Hbase配置HBase RegionServer 的 Java 配置选项后重启集集群

【重要提示】需要将该配置中默认的{{JAVA_GC_ARGS}} -XX:ReservedCodeCacheSize=256m删除,否则JVM会发生冲突

2,禁用BoundedByteBufferPool

HBase 使用 BoundedByteBufferPool 来避免堆内存碎片化。你可以通过 Cloudera Manager 禁用 BoundedByteBufferPool。

G1 垃圾收集器在某些情况下可以减少对避免堆内存碎片化的需求。如果你使用 G1 垃圾收集器,可以禁用 HBase 中的 BoundedByteBufferPool。这可以减少需要被回收的“老年代”对象的数量。但此配置属于实验性质。​​​​​​​

在CM中编辑Hbase配置 HBase Service Advanced Configuration Snippet (Safety Valve) for hbase-site.xml 

​​​​​​​

<property>
  <name>hbase.ipc.server.reservoir.enabled</name>
  <value>false</value>
</property>

3,重启Hbase服务

标签:Cloudera,运维,回收,Regionserver,XX,内存,HBase,Hbase,垃圾
From: https://blog.csdn.net/LUOHU11/article/details/144659775

相关文章

  • 解锁风电运维新密码:深度学习神经网络助力设备寿命精准预估
    摘要:当下,风电产业蓬勃发展,可恶劣运行环境使设备故障频发,精准预估剩余寿命迫在眉睫。深度学习中的神经网络为此带来曙光,其基础源于对大数据处理需求的回应,借由神经元、层架构自动提取特征。在风电应用里,CNN、LSTM深挖多源异构数据特征,MLP等架构构建预测模型,配合优化算法训......
  • 【安全运维】如何安全部署和升级服务?
    在服务升级中,采用安全和可控的策略是关键,以最小化停机时间、降低风险并确保平稳过渡。一、多服务部署该策略同时为多个服务部署新的变更。这种方法很容易实现。但由于所有服务都是同时升级的,因此很难管理和测试依赖关系。也很难安全地回滚。二、蓝绿部署蓝绿部署专注于运行两......
  • KingbaseES V8R6数据库运维案例之---sys_resetwal案例
    案例说明:如下图所示,KingbaseESR6数据库启动失败,通过sys_resetwal重建checkpoint启动数据库。适用版本:KingbaseESV8R6一、问题现象二、问题分析1、查看reset前的控制文件的信息[kingbase@node1bin]$./sys_controldata-D/data/kingbase/v8r6_021/datasys_controlve......
  • GaussDB轻量化运维管理工具介绍
    ​前言本期课程将从管理平台的架构出发,结合平台的实例管理、实例升级、容灾管理和监控告警的功能和操作介绍,全面覆盖日常运维操作,带您理解并熟练运用GaussDB运维平台完成运维工作。一、GaussDB运维管理平台简介开放生态层友好Web界面,多云皮肤个性化定制丰富的原子API公有......
  • GaussDB OM运维管理关键技术方案
    GaussDBKernelV5OM运维管理关键模块如下。OM运维主要功能有:安装升级节点替换扩容、缩容自动告警巡检备份恢复、容灾日志分析系统在华为云的部署模式下,OM相关组件部署示意图如下:图7华为云OM运维管理用户登录华为云Console,访问GaussDBKernelV5的管控页面,输入想要的运维操......
  • 【岗位招聘】网络空间安全及运维高级工程师
    参考:中石化岗位职责负责协助制定集团网络安全战略,并提供安全技术指导,组织集团网络攻防演练工作。负责组织开展集团安全风险评估工作,识别集团核心业务系统安全风险,并提供解决方案。负责组织开展集团信息系统的安全审计和漏洞检测工作。负责组织集团信息系统运维体系的优化......
  • WatchAlert - 一款轻量级云原生多数据源监控告警引擎(运维研发必备能力)
    概述在现代IT环境中,监控和告警是确保系统稳定性和可靠性的关键环节。然而,随着业务规模的扩大和数据源的多样化,传统的单一数据源告警系统已经无法满足复杂的需求。为了解决这一问题,我开发了一个开源的多数据源告警引擎——WatchAlert,它能够集成多种数据源,提供灵活的告警策略配置......
  • Next.js 14 部署运维:从开发到生产的最佳实践
    在完成Next.js14应用的开发后,如何将其高效地部署到生产环境并进行可靠的运维管理是一个关键问题。本文将详细介绍Next.js14的部署策略和运维最佳实践。部署准备工作1.环境配置管理//next.config.js/**@type{import('next').NextConfig}*/constnextConfig=......
  • KingbaeES V9集群运维案例之---透明加密表空间切换测试
    案例说明:在主备复制集群环境,配置透明加密后,集群switchover和failover切换测试。测试数据库版本:prod=#selectversion();version-------------------------------------------------------------------------------......
  • 0day深信服运维安全管理系统(堡垒机)存在信息泄露漏洞
     0x01产品概述        深信服运维安全管理系统侧重于运维安全管理,集账号管理、身份认证、单点登录、资源授权、访问控制和操作审计为一体,能够对IT资产(如服务器、网络设备、安全设备、数据库等)的操作过程进行有效的运维操作审计,使运维审计由事件审计提升为操作内容......