当前位置: 首页 > news >正文

Java web应用性能分析之【jvisualvm远程连接云服务器】

Java web应用性能分析之【java进程问题分析概叙】-CSDN博客

Java web应用性能分析之【java进程问题分析工具】-CSDN博客

        前面整理了java进程问题分析和分析工具,现在可以详细看看jvisualvm的使用,一般java进程都是部署云服务器,或者托管IDC机房。手里有一台阿里云主机,刚好用来做实验。配置jvisualvm连接阿里云主机,分为两步。

1.配置jmxremote

-Djava.rmi.server.hostname=39.99.211.248 阿里云主机这个公网ip一定要显示加上去
-Dcom.sun.management.jmxremote    启用jmxremote
-Dcom.sun.management.jmxremote.port=8899    jmx远程连接时使用的端口,设置成任意未被占用的端口即可
-Dcom.sun.management.jmxremote.rmi.port=8899 
-Dcom.sun.management.jmxremote.authenticate=true  否需要身份认证,设置为false不需要用户名和密码
-Dcom.sun.management.jmxremote.ssl=false  是否使用ssl,ssl是一个通信加密的安全协议,不启用
-Dcom.sun.management.jmxremote.password.file=/usr/local/soft/jmxremote.password  登录密码   
-Dcom.sun.management.jmxremote.access.file=/usr/local/soft/jmxremote.access 登录账号如果设置为true则需要额外配置以下2个参数
Dcom.sun.management.jmxremote.access.file:access文件
[root@phost ~]# vim /usr/local/soft/jmxremote.access   //任意目录下创建access文件
zhouxx readwrite  //格式为: 用户名 (空格)权限
Dcom.sun.management.jmxremote.access.file:密码文件
[root@phost ~]# vim /usr/local/soft/jmxremote.password   //创建密码文件
zhouxx 123456  //格式为: 用户名 (空格) 密码

java进程的jvm参数配置示例:

JAVA_OPTS=" -server -Dfile.encoding=UTF-8 -Djava.rmi.server.hostname=39.99.211.248 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8899 -Dcom.sun.management.jmxremote.rmi.port=8899 -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=/usr/local/soft/jmxremote.password   -Dcom.sun.management.jmxremote.access.file=/usr/local/soft/jmxremote.access -Dapp.config=/home/web/demo/application.yaml -Xms64m -Xmx64m -Xmn64m -Xss1m -XX:MetaspaceSize=16m -XX:MaxMetaspaceSize=64m -XX:+UseConcMarkSweepGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintHeapAtGC -XX:+PrintCommandLineFlags -Xloggc:log/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=log/"
JAVA_OPTS=" -server -Dfile.encoding=UTF-8 -Djava.rmi.server.hostname=39.99.211.248 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8899 -Dcom.sun.management.jmxremote.rmi.port=8899 -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=/usr/local/soft/jmxremote.password   -Dcom.sun.management.jmxremote.access.file=/usr/local/soft/jmxremote.access -Dapp.config=/home/web/demo/application.yaml -Xms64m -Xmx64m         -Xss1m -XX:MetaspaceSize=16m -XX:MaxMetaspaceSize=64m -XX:+UseG1GC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintHeapAtGC -XX:+PrintCommandLineFlags -Xloggc:log/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=log/"java $JAVA_OPTS  -jar mydemo-1.0.0-SNAPSHOT.jar 

2.开端口:开阿里云端口和服务器上防火墙端口

2.1开阿里云端口

为什么是全端口开发1-65535,而不是只开8899端口?

        因为jmx不仅仅只启用8899端口,还会随机再起一个端口,如当前15641进程还开启了45919,这个端口不固定,所以只能针对117.147.118.199客户端全开放。

2.2 ubuntu的防火墙端口:ufw allow from  117.147.118.199

3.jvisualvm远程连接服务器上的java进程,监控java进程状态

基本参数信息,相当于jps和jinfo

监控cpu、堆内存、元空间、类加载、线程等信息

线程信息:相当于jstack,也可以导出线程dump文件

抽样器:相当于jstack、jmap、jhat

快照信息

buffer pool监控

jconsole插件

visual GC:相当于jstat

提示 “不受此jvm支持”

参考:jvisualvm 连接 jstatd 远程监控 jvm 或 Visual GC提示"不受此JVM支持“_虚拟机 jvisualvm 不受此jvm-CSDN博客

Tracer:同样是cpu、堆、元空间、类加载、线程等的监控

4.jvisualvm分析jvm的dump文件

        jvisualvm通过分析dump文件,定位oom问题、cpu飙高问题、大内存对象问题等等

http://www.lryc.cn/news/360936.html

相关文章:

  • springboot发送短信验证码,结合redis 实现限制,验证码有效期2分钟,有效期内禁止再次发送,一天内发送超3次限制
  • 【Python】使用 Pandas 统计每行数据中的空值
  • 1pannel部署onenav导航容器编排模板
  • linux--实时性优化
  • React-基础样式控制
  • 制作ChatPDF之前端Vue搭建(二)
  • 汽车IVI中控开发入门及进阶(二十一):DAB和FM 收音机
  • 智能sql LLM
  • 大聪明教你学Java | 深入浅出聊 Stream.parallel()
  • 图解大模型分布式并行各种通信原语
  • 张大哥笔记:下一个风口是什么?
  • AI去衣技术中的几何着色:揭秘数字时尚的魔法
  • Leecode---技巧---只出现一次的数字 / 多数元素
  • 为图片设置经纬度信息
  • 密码和密钥的联系与区别
  • C++编程法则365天一天一条(323)main函数执行之前和之后的动作
  • 阿里云短信服务使用(Java)
  • C++17之std::void_t
  • 零基础入门篇①⑥ Python可变序列类型--字典
  • C语言面试题1-10
  • Qt Designer工具如何修改MainWindow窗口的标题
  • 车辆前向碰撞预警系统性能要求和测试规程
  • C#实现winform中渲染图的展示
  • JTS库的讲解及使用
  • 【C++杂货铺】unordered系列容器
  • 模板-初阶
  • 重载运算符C++---学习笔记
  • SpringMVC枚举类型字段处理
  • 集成算法:Bagging模型、AdaBoost模型和Stacking模型
  • DW怎么Python:探索Dreamweaver与Python的交织世界