jprofiler远程监控JVM( spring boot项目)
服务器的服务出现莫名其妙的假死问题,没有出现报错或者异常信息。需要通过工具来远程监控项目
大概步骤如下
- 安装版本号一致的jprofiler
- 如果使用docker 容器运行项目的需要进入docker 容器内配置jprofiler需要的环境配置
- liunx环境上传下载好的liunx版本的jprofiler ,如果是docker 容器需要把jprofiler 拷贝到容器当中, 这样docker容器中才真正的包含了jprofiler
- window系统安装jprofiler 配置对应的liunx ip和端口 即可监控项目情况
一.安装版本号一致的jprofiler
下载地址:
ej-technologies - Java APM, Java Profiler, Java Installer Builder
(下载、安装windows和linux版的jprofile.注意:若监控的是springboot、springcloud项目,切记本地和服务器上的jprofile要版本保持一致,本人亲自踩过坑)
下载windows端jprofiler11.0.2 版本
下载liunx端的jprofiler11.0.2版本
二.如果使用docker 容器运行项目的需要进入docker 容器内配置jprofiler需要的环境配置
检查自己liunx服务器是64位还是32位的,
uname -m
如果是32位的采用以下配置:
进入docker 容器内部配置jprofiler环境变量
#进入容器
docker exec -it 容器id /bin/bash
cd /etc
vi profile
INSTALL4J_JAVA_HOME为java环境变量
LD_LIBRARY_PATH为自己服务器上jprofiler11的bin下的x86环境。
export INSTALL4J_JAVA_HOME=/usr/java/jdk1.8.0_181
export LD_LIBRARY_PATH=/opt/jprofiler11/bin/linux-x86
修改完后,使环境变量生效
source /etc/profile
如果是64位的,小编的服务器是64位的,所以采用的配置如下:
INSTALL4J_JAVA_HOME为java环境变量
LD_LIBRARY_PATH为自己服务器上jprofiler11的bin下的x环境。
export INSTALL4J_JAVA_HOME=/usr/java/jdk1.8.0_181
export LD_LIBRARY_PATH=/opt/jprofiler11/bin/linux-x64
修改完后,使环境变量生效
source /etc/profile
三. liunx环境上传下载好的liunx版本的jprofiler ,如果是docker 容器需要把jprofiler 拷贝到容器当中, 这样docker容器中才真正的包含了jprofiler
(小编的liunx环境该开始的时候是用的openjdk,后面又重新安装了jdk1.8,在liunx环境的jdk映射到docker容器中,使得liunx环境的jdk跟docker容器使用的jdk 是一致的,目前没有证实是否需要这样做,如果没有安装过程报错可以忽略这步骤)
参考文档
Linux安装Oracle JDK替换OpenJDK详解
将linux系统中的文件复制到docker容器中-蒲公英云
启动命令参考 IP和端口需要填自己的
sudo docker run -d -m 4096M --memory-swap 6144M --oom-kill-disable \
--name deploy \
--net=host \
-e JAVA_OPTS="-Xmx5g -Xms5g -Xmn3072M -Xss1M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs/dump.log -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=10 -XX:PretenureSizeThreshold=3M -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=92 -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=3" \
-e BOOT_CONFIG=" \
--spring.profiles.active=deploy \
--spring.application.name=deploy \
--spring.cloud.nacos.config.server-addr=127.0.0.1:8848 \
--spring.cloud.nacos.config.ext-config[0].data-id=deploynode.properties \
--agentlib:jprofilerti=port=8849 -Xbootclasspath/a:/root/jprofiler11/bin/agent.jar \ --agentpath:/root/jprofiler11/bin/linux-x64/libjprofilerti.so=port=8849,nowait \
" \
-v /home/deploy /logs:/logs \
-v /home/deploy /file:/file \
-v /home/deploy /nacos:/root/nacos \
b618f1a12345
四.window系统安装jprofiler 配置对应的liunx ip和端口 即可监控项目情况
填写liunx系统的ip地址
地址填写为jprofile文件上传到liunx环境的地址
最最最重要的步骤,需要把windows 系统生成的jprofile_config.xml
复制到liunx系统上的jprofile目录结构一样的文件中
这样才能使windows系统上的jprofile 跟 liunx系统上的jprofile 有关联。
才能在windows系统上的jprofile真真正正的监控liunx上的项目运行气情况
替换好的liunx系统上的jprofile 整个拷贝到需要监控的服务,指定的docker容器中。
启动docker 容器,启动命令记得加上 环境参数
--agentlib:jprofilerti=port=8849 -Xbootclasspath/a:/root/jprofiler11/bin/agent.jar \ --agentpath:/root/jprofiler11/bin/linux-x64/libjprofilerti.so=port=8849,nowait \
容器启动成功,进入容器启动 jprofile
#进入容器
docker exec -it 容器id /bin/bash
启动jpenable,设置8849端口
cd /jprofiler11
cd bin
./jpenable
windows 启动jprofile11,进行测试
参考文档
jprofiler远程监控JVM( spring boot项目)_MonkeyKing_sunyuhua的博客-CSDN博客_jprofiler远程监控
jprofiler 监听远程java项目 - 左手背右手背 - 博客园
将linux系统中的文件复制到docker容器中-蒲公英云
Linux安装Oracle JDK替换OpenJDK详解
jprofiler远程监控JVM( spring boot项目)相关推荐
- 远程服务器部署spring boot 项目(centos7为例)
1.打包项目(可以是jar包,也可以是war包)以jar包为例(用eclipse打包): 1.项目目录右击--debug as(run as)--maven build,然后输入package,点击d ...
- Jenkins系列之——第五章 Jenkins编译一个Spring Boot项目并通过SSH推送到远程
上一章讲了发布一个项目到远程的Tomcat上,但是随着现在微服务Spring Cloud的热度很多小伙伴们都转向了Spring Boot.本章就介绍一下如何部署一个Spring Boot项目并通过脚本 ...
- Spring Boot项目部署服务器 本地正常 远程无法访问问题排错
Spring boot项目部署linux 服务器本地正常 远程无法访问 问题描述 排错 原因 最后 最近买个云主机学大佬部署项目..然后直接炸裂了... 问题描述 本地保证代码没问题的情况下( jav ...
- 在WIN7中用maven将spring boot项目远程部署到Linux虚拟机的docker容器
题目信息量很大,蕴含了以下信息: 1.当前开发环境是WIN7 2.docker容器在Linux虚拟机中 3.在WIN7里将直接将spring boot项目发布到该远程docker 4.发布工具是mav ...
- Spring Boot 项目如何做性能监控?
来源:zhaoyh's blog,http://zhaoyh.com.cn/ Spring Boot特别适合团队构建各种可快速迭代的微服务,同时为了减少程序本身监控系统的开发量,Spring Boot ...
- spring boot项目 中止运行 最常用的几种方法
spring boot项目 中止运行 最常用的几种方法: 1. 调用接口,停止应用上下文 @RestController public class ShutdownController impleme ...
- 如何做自己的服务监控?spring boot 2.x服务监控揭秘
Actuator是spring boot项目中非常强大一个功能,有助于对应用程序进行监视和管理,通过 restful api请求来监管.审计.收集应用的运行情况,针对微服务而言它是必不可少的一个环节. ...
- 快速使用 Docker 部署 Spring Boot 项目
如今 Docker 的使用已经非常普遍,特别是在一线互联网公司,使用 Docker 技术可以帮助企业快速水平扩展服务,从而达到弹性部署业务的能力.在云服务概念兴起之后,Docker 的使用场景和范围进 ...
- Jenkins部署spring boot项目
本文介绍使用Jenkins自动打包发布spring boot项目,我们在没有使用持续集成工具的情况下,开发好的spring boot项目,通过maven打包,上传jar包到服务器上,通过java -j ...
最新文章
- Symbian c++ MCameraObserver类的方法解释
- 菜鸟成长日记(四)之WMIC简单命令应用
- project template
- redis源码剖析(七)—— Redis 数据结构dict.c
- DataTable操作
- spring boot + vue + element-ui全栈开发入门——前端编辑数据对话框
- 52. PHP 伪静态
- 软件工程个人作业01 100以内四则运算自动答题系统(含整数和真分数)
- Google发布MobileNets,一种预训练的高效Tensorflow计算机视觉模型
- 软件工程(成本/效益分析)
- AMD Ryzen Threadripper PRO 5000 series now available for the DIY market, 64 Zen3 cores for $6500
- 具有层级关系的关系型数据库表设计
- WordPress和October
- 【资源帖】漏洞平台(国内外)+企业SRC整理-持续更新
- 【Java进阶营】Java面试题收集
- 2021年起重机械指挥新版试题及起重机械指挥模拟考试
- nvm安装与使用详解(Window11)
- 下载安装MarkDown保姆级
- java词云生成,kumo项目详解
- MPT——cost function推导过程
热门文章
- 【目标检测】55、YOLOv8 | YOLOv5 团队 Ultralytics 再次出手,又实现了 SOTA
- MySQL中GROUP_CONCAT和Having的使用
- Java获取标准网络时间
- KindEditor编辑器/分页编写
- 旋转矩阵R、平移向量t以及变换矩阵T的定义及其下标的含义
- 该适配器当前设置为使用特定的错误IP地址,而不是自动获取iP地址
- 2014年 delphi源码大全升级到31G
- mysql省市级联pid_全国省市级联sql表
- PostgreSQL11.17离线安装过程(X86+Ubuntu)
- tp报错: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is