远程监控Flink任务性能内存分析超详细篇

3 篇文章 0 订阅

前言

上一篇讲了JVM性能调优的实战工具JVM性能调优监控工具实战(jconsole,jvisualvm),针对于普通jar包的进程只需配置JXM即可,这篇讲解真实业务场景中服务器负载过高,首先找出性能耗费最高的进程,然后通过jconsole.exejvisualvm.exe工具分析。不出意外,这将是全网第一篇讲远程监控flink任务的教程

工具介绍:

  • jconsole:是一个内置 Java 性能分析器,分析堆栈溢出、多线程死锁等效果俱佳
  • jvisualvm:监控内存泄露,跟踪垃圾回收,执行时内存、cpu分析,线程分析

概念解释:

Java RMI:Java远程方法调用,即Java RMI(Java Remote Method Invocation)
Java JMX: Java管理扩展,即Java JMX(Java Management Extensions)

使用JMX技术监控远程Java进程,具体参数解析:

-Djava.rmi.server.hostname=10.92.2.xx	//配置远程主机地址,即jar包运行所在系统的IP地址
-Dcom.sun.management.jmxremote.port=31001//指定JMX的运行端口,jconsole需要对接的既是该端口
-Dcom.sun.management.jmxrete.ssl=false		// 是否允许使用ssl方式接入
-Dcom.sun.management.jmxremote.authenticate=false	//是否需要进行身份验证

此处hostname千万不能写localhost

以上配置,普通java进程,放在启动脚本中,而flink任务需要如下操作:

配置Java OPTS

找到flink安装路径,bin目录下,编辑config.sh文件(flink在执行flink-cluster.sh时会调用这个config.sh文件,这个文件是flink的环境变量等配置)。
在这里插入图片描述在这里插入图片描述

  • DEFAULT_ENV_JAVA_OPTS="" # Optional JVM args
  • DEFAULT_ENV_JAVA_OPTS_JM="" # Optional JVM args (JobManager)
  • DEFAULT_ENV_JAVA_OPTS_TM="" # Optional JVM args (TaskManager)

此处配置的是flink的taskManager或者jobManger,如果配置了自身JVM,那么会出现JMX端口冲突,导致taskManager无法正常启动。

启动Flink

./start-cluster.sh
在这里插入图片描述可以看到taskManger和jobManger都正常启动

Jconsole远程连接:

两种方式启动:

1、通过dos命令行:

Jconsole root@10.92.2.xx:port
在这里插入图片描述

2、直接运行:

java安装目录下:D:\Program Files\Java\jdk1.8.0_201\bin,双击jconsole.bat

在这里插入图片描述

JVM性能分析图:

在这里插入图片描述

测试一下:

启动一个脚本,每秒发送500条数据到kafka,观察CPU、内存性能变化:
大概在17:27开始发数据:效果如图

在这里插入图片描述
顺便介绍一下jconsole的升级版——jvisualvm.exe,一般搭配jconsole同时使用,jvisualvm.exe可以当大屏看,jconsole.exe看具体信息,下图开始飙升的时间点就是开始跑数据的时间,能看到具体某个进程的性能消耗:
在这里插入图片描述服务端执行top查看飙升的进程:
进入top执行,按e切换单位,按c显示具体的进程信息,可以看到cpu飙升到3个核,内存占用也飙升,而此进程正是flink任务,接下来就是进行具体的分性能调优了。

在这里插入图片描述jconsole.exejvisualvm.exe更能用于本地开发阶段的代码质量追踪和调试,远程监控的方法会了,本地监控也会了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值