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 ...
最新文章
- c语言unused variable错误,这个错误可能的原因是你忘了初始化变量
- 【机器学习】什么是机器学习?(下)
- property field java_Java 中 field 和 variable 区别及相关术语解释
- C#使用Gecko实现浏览器
- web安全_皮卡丘_csrf
- bzoj3209:3209: 花神的数论题
- 类代理java设计模式---动态代理(简单笔记)
- Logrotate操作手册
- Angular.js-开发前笔记
- MCU总线读写仿真模块
- 电脑管家版WiFi共享精灵简介
- matlab自由落体程序,基于MATLAB的自由落体运动仿真.pdf
- 微信编辑器的文章复制到公众号以后乱码怎么解决?
- 少年派的奇幻漂流-解读与感悟
- linux mint 搜狗 乱码,解决linux mint wine微信字体显示问题
- 到底什么是IaaS、PaaS、SaaS?
- 模拟登录qq网页版方法
- 华为语音解锁设置_华为手机语音转文字怎么设置,如何完成音频在线转换
- PyTorch搭建卷积神经网络(CNN)进行视频行为识别(附源码和数据集)
- 【72】编辑距离问题