开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

全托管的flink能改成G1垃圾回收器吗?

全托管的flink能改成G1垃圾回收器吗?

展开
收起
三分钟热度的鱼 2023-11-08 18:43:55 207 0
4 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    是的,全托管的 Flink 是可以改用 G1 垃圾回收器的。您可以根据以下步骤进行配置:

    1. conf/flink-conf.yaml 文件中添加以下配置项:
    taskmanager.memory.process.size: 2g
    
    parallelism.default: 8
    
    state.backend.fs.checkpointdir: file:///mnt/taskmanager/checkpoints/
    
    state.backend.rocksdb.memory.managed.fraction: 0.7
    
    taskmanager.heap.size: -Xmx1g -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+UseParNewGC -XX:-UseParallelOldGC -XX:MaxDirectMemorySize=1g -XX:ReservedCodeCacheSize=256m -XX:+UseStringDeduplication
    

    这些配置项将会把默认的 GC 改为 CMS GC,并启用 String Deduplication 功能。请注意,上述配置项只是示例,您应该根据自己的实际情况进行调整。

    1. conf/log4j.properties 文件中添加以下配置项:
    log4j.rootLogger=INFO, console, flinkRollingFileAppender
    
    log4j.appender.flinkRollingFileAppender=com.alibaba.log4j.DailyRollingFileAppender
    
    log4j.appender.flinkRollingFileAppender.File=/var/log/flink/flink.log
    
    log4j.appender.flinkRollingFileAppender.layout=org.apache.log4j.PatternLayout
    
    log4j.appender.flinkRollingFileAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
    
    log4j.logger.org.apache.flink.runtime.memory.TaskExecutorOutOfMemoryHandler=DEBUG
    
    log4j.logger.org.apache.flink.runtime.memory.MemoryManager=DEBUG
    

    这些配置项将会打印出详细的 GC 日志信息,以便您了解 Flink 的运行情况。

    1. 启动 Flink 集群,并检查 GC 日志。如果您发现 Flink 使用的是 CMS GC,并且没有内存泄漏等问题,那么您可以考虑切换到 G1 GC。为了切换到 G1 GC,请按照以下步骤操作:
    taskmanager.heap.size: -Xmx1g -XX:+UseG1GC
    
    2023-11-10 14:10:37
    赞同 展开评论 打赏
  • Apache Flink的全托管版本(也称为Flink Server)使用的是Java作为其运行环境,因此,它的垃圾回收器类型是由Java虚拟机(JVM)的配置决定的。

    在大多数情况下,Flink Server使用的垃圾回收器类型是由Flink的启动脚本或者启动命令行参数设置的。例如,如果Flink是在Apache YARN上运行的,那么垃圾回收器的类型通常是由YARN的Java选项设置的。

    如果你想改变垃圾回收器的类型,你可以尝试修改这些配置选项。然而,这需要一定的Java和Flink的知识,并且可能需要一些实验和调整,以确保新的配置不会影响Flink的性能和稳定性。

    另外,需要注意的是,不同的垃圾回收器有不同的性能特性和适用场景,选择哪种类型的垃圾回收器并不是一个简单的决定。你应该根据你的具体需求和场景,以及你的系统的性能特性,来决定使用哪种类型的垃圾回收器。

    2023-11-09 15:52:27
    赞同 展开评论 打赏
  • 全托管版 Flink 默认使用 G1 垃圾回收器。若要更改 GC 收集器,请联系技术支持部门了解更多信息。

    一般来说,建议保持默认设置,因为在全托管版 Flink 中,采用 G1 收集器已进行了大量优化,因此不需要更改默认设置。如果你发现特定场景下需要调整参数,可以考虑修改额外的 JVM 参数来调整 Flink 任务的行为。具体来说,你可以使用 FLINK_JAVA_OPTS 和 FLINK_JAVA_OPTS_TM 环境变量来指定不同的参数。不过,修改 JMX 参数需谨慎,并遵循官方文档。

    2023-11-08 21:33:52
    赞同 展开评论 打赏
  • 主要的原因是因为我们现在是JDK 8, 8的G1不是那么好,后边有计划到11。我们那会儿可以考虑把G1作为默认的,现在云上你也可以自己改成G1,通过参数配置。此回答整理自钉群“实时计算Flink产品交流群”

    2023-11-08 19:26:15
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载