Java JVM:虚拟机性能监控、故障处理工具(三)

news2024/12/28 3:12:56

目录标题

    • 一、基础故障处理工具
    • 二、可视化故障处理工具
    • 三、其他故障相关

一、基础故障处理工具

  • JMC(Java Mission Control)以及JFR(Java Flight Recorder)
    • JMC 从 Java7 以后包含在 JDK 中,直接输入 jmc 就能启动
    • 在使用之前需要配置 Java 进程支持 JMX 连接,在启动时加入配置
      • -Dcom.sun.management.jmxremote.port=7091
      • -Dcom.sun.management.jmxremote.authenticate=false
      • -Dcom.sun.management.jmxremote.ssl=false
    • 取消锁定商业功能开启飞行记录配置(二选一)
      • jcmd pid VM.unlock_commercial_features
      • -XX:+UnlockCommercialFeatures -XX:+FlightRecorder

在这里插入图片描述

  • jps:Java Virtual Machine Process Status Tool 虚拟机进程状况工具
    • 语法:jps [options] [hostid]
      • -q:只输出 PID
      • -m:输出传递给 main 方法的参数
      • -l:完整包名或应用程序 JAR 文件的完整路径名
      • -v:查看虚拟机启动时显示指定的参数列表
    • 可以列出正在运行的虚拟机进程,并显示虚拟机执行主类名称以及这些进程的本地虚拟机唯一ID
    • 还可以通过RMI协议查询开启了RMI服务的远程虚拟机进程状态,参数hostid为RMI注册表中注册的主机名

在这里插入图片描述

  • jstat:虚拟机统计信息监视工具
    • 用于监控虚拟机各种运行状态信息的命令行工具
    • 可以显示虚拟机进程中的类加载、内存、垃圾收集、即使编译等运行时数据
      • 每250毫秒查询一次进程2764垃圾收集情况,一共查询20次
      • jstat -gc 2764 250 20
      • 查询结果表明,2764 进行的新生代 Eden 区(E) 使用 6.2% 空间,2 个 Survivor 区(S0、S1) 里面是空的,老年代(O) 和永久代§ 分别使用 41.42% 和 47.20% 空间,MinorGC (YGC) 16次,耗时(YGCT) 0.105 秒,Full GC (FGC) 3次,耗时(FGCT) 0.472 秒,所有 GC 总耗时 (GCT) 0.577 秒

在这里插入图片描述

  • jinfo:Java配置信息工具
    • 实时查看和调整虚拟机各项参数
  • jmap:Java内存映像工具
    • 生成堆转储快照,还可以查询finalize执行队列、Java堆和方法区的详细信息
  • jhat:虚拟机堆转储快照分析工具
    • 与jmap搭配使用,分析jmap生成的堆转储信息
    • 一般不会在部署应用程序的服务器上直接分析
  • jstack:Java堆栈跟踪工具
    • 生成虚拟机当前时刻的线程快照,同事用于定位线程出现长时间停顿的原因

二、可视化故障处理工具

  • JHSDB:基于服务性代理的调试工具
  • JConsole:Java监视与管理控制台
  • VisualVM:多合-故障处理工具
  • Java Mission Control:可持续在线的监控工具

三、其他故障相关

  • 大内存硬件上的程序部署策略
    • 单体应用在较大内存的硬件上主要的部署方式
      • 通过一个单独的Java虚拟机实例来管理大量的Java堆内存
        • 回收大块堆内存而导致的长时间停顿
        • 大内存必须有64位Java虚拟机的支持
        • 必须保证应用程序足够稳定,发生堆内存溢出要产生大容量的快照文件
        • 相同的程序在64位虚拟机中消耗的内存一般比32位虚拟机要大
      • 同时使用若干个Java虚拟机,建立逻辑集群来利用硬件资源
        • 节点竞争全局的资源,最典型的就是磁盘竞争
        • 很难最高效率地利用某些资源池,比如连接池
        • 节点不可避免地受到32位的内存限制,每个进程只能使用2GB的内存
        • 大量使用本地缓存
  • 集群间同步导致的内存溢出
  • 堆外内存导致的溢出错误
    • Java堆外内存限制
      • 直接内存:可通过-XX:MaxDirectMemorySize调整大小
      • 线程堆栈:可通过-Xss调整大小,内存不足抛出StackOverflowError
      • Socket缓存区:每个Socket连接都Receive和Send两个缓存区
      • JNI代码:如果代码中使用了JNI调用本地库,那本地库使用的内存也不在堆中
      • 虚拟机和垃圾收集器:工作时需要消耗一定量的内存
  • 外部命令导致系统缓慢
  • 服务器虚拟机进程崩溃
  • 不恰当数据结构导致内存占用过大
  • 由Windows虚拟内存导致的长时间停顿
  • 由安全点导致长时间停顿

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/144279.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JEECGboot数据规则篇

使用 一、功能说明 列表数据权限,主要通过数据权限控制行数据,让不同的人有不同的查看数据规则; 比如: 销售人员只能看自己的数据;销售经理可以看所有下级销售人员的数据;财务只看金额大于5000的数据等等…

js事件高级

文章目录一、注册事件(绑定事件)1、注册事件概述(1)传统注册方式(2)方法监听注册方式2、addEventListener 事件监听方式3、attachEvent 事件监听方式4、注册事件兼容性解决方案二、删除事件(解绑…

C库函数:string.h

string.h C 标准库 – <string.h> | 菜鸟教程 (runoob.com) 1void *memchr(const void *str, int c, size_t n) 在参数 str 所指向的字符串的前 n 个字节中搜索第一次出现字符 c&#xff08;一个无符号字符&#xff09;的位置。在这个函数中&#xff0c;可以看到有void …

使用docker安装zabbix监控

官网手册&#xff1a;docker安装zabbix 首先需要安装好docker服务 创建专用于Zabbix组件容器的网络 docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net启动空的 MySQL 服务器实例 docker run --name mysql-server -t \ //mysql容器…

FFMPEG完美入门资料---002---FFmpeg 支持能力说明

FFMPEG入门资料---001---介绍和参数说明_音视频开发老马的博客-CSDN博客 接着上文写&#xff1a; 2.3.1 FFmpeg 对编码解码器的支持 ffmpeg 支持的编解码器种类共有 280 多种&#xff0c; 涵盖了几乎所有常见音视频编码格式&#xff0c; 能解码几乎所有的音视频&#xff0c; …

月交付破万,长安深蓝成造车新势力“头部玩家”

近日&#xff0c;造车新势力纷纷公布2022年12月交付数据。通过数据&#xff0c;我们发现众多造车新势力都取得了不错的成绩&#xff0c;“头部玩家”的门槛甚至提升至万辆。与此同时&#xff0c;“排位”形势也与往年大相径庭&#xff0c;其中最令人意外的是2022年发布的深蓝品…

ESP8266+MicroPython开发:使用ESP8266+Thonny烧录MicroPython固件

使用ESP8266Thonny烧录MicroPython固件下载固件下载安装Thonny在Thonny烧录固件测试Thonny简单使用下载固件 MicroPython下载网址 根据ESP8266的flash选择&#xff0c;一般选择如图所示 自己随便选择一个版本下载&#xff0c;注意记住自己的下载路径 下载安装Thonny Thonn…

【vue系列-05】vue的生命周期(详解)

深入理解vue的生命周期一&#xff0c;vue的生命周期1&#xff0c;创建流程1.1&#xff0c;beforeCreate1.2&#xff0c;created2&#xff0c;挂载流程2.1&#xff0c;beforeMount2.2&#xff0c;mounted3&#xff0c;更新流程3.1&#xff0c;beforeUpdate3.2&#xff0c;update…

ConvNeXt V2论文翻译:ConvNeXt V2与MAE激情碰撞

文章目录摘要1 简介2 相关工作3 全卷积掩码自编码器4 全局响应归一化5 ImageNet实验6 迁移学习实验7 结论摘要 论文链接&#xff1a;ConvNeXt V2 在改进的架构和更好的表示学习框架的推动下&#xff0c;视觉识别领域在21世纪20年代初实现了快速现代化和性能提升。例如&#xf…

评价类模型(层次分析法与模糊评价模型)

一、评价类模型 综合评价的基本理论和数据预处理&#xff1a; 评价对象评价指标权重系数综合评价模型评价者 二、AHP法—层次分析法 通过打分解决评价类问题&#xff0c;两两比较&#xff0c;推算权重。 %function RIAHPRI(n) %利用MATLAB求随机一致性指标; i0;CI0;Azer…

pyqt5下的QInputDialog跟QFileDialog以及关闭主窗口子窗口自动关闭

QInputDialog 具体的参数可以参考&#xff1a; Qt&#xff1a;30---QInputDialog标准输入对话框_mb6128aabee41d4的技术博客_51CTO博客 官网连接&#xff1a; QInputDialog Class | Qt Widgets 5.15.12 这里只介绍QInputDialog.getText 代码实现&#xff1a; from PyQt5.…

【从零开始学爬虫】采集食品行业最新报价数据

l 采集网站 【场景描述】采集食品行业最新报价数据。 【源网站介绍】中国报告大厅网休闲食品行业数据频道提供休闲食品行业数据信息&#xff0c;在此有大量休闲食品行业数据信息可供选择&#xff0c;是一个可以帮助休闲食品行业了解数据的平台。 【使用工具】前嗅ForeSpider…

hbase2.x orphan regions on filesystem

问题描述&#xff1a;orphan regions on filesystem 可以通过主master web页面的HBCK Report查看 也可以通过hbck2工具查看 # 查看指定表 hbase hbck -j $HBASE_HOME/lib/hbase-hbck2-1.3.0-SNAPSHOT.jar addFsRegionsMissingInMeta default:tableName # 查看命名空间下所有…

Git分支开发中的问题

前言我们在开发中&#xff0c;经常是很多人开发同一份代码&#xff0c;早期没有git工具的时候那可真是噩梦&#xff0c;要复制来复制去&#xff0c;不止繁琐&#xff0c;还容易出错&#xff0c;所以后来涌现了各种代码工具&#xff0c;Svn&#xff0c;Git等等&#xff0c;而Git…

一、mysql基础、MySQL的安装及卸载、DML、DQL

MySQL基础 1、数据库相关概念 以前我们做系统&#xff0c;数据持久化的存储采用的是文件存储。存储到文件中可以达到系统关闭数据不会丢失的效果&#xff0c;当然文件存储也有它的弊端。 假设在文件中存储以下的数据&#xff1a; 姓名 年龄 性别 住址 张三 23 男 北京西三…

干货|app自动化测试之Andriod WebView如何测试

Hybrid App&#xff08;混合模式移动应用&#xff09;是介于 Web-app、Native-app 之间的 app&#xff0c;本质上是 Native-app 中嵌入 WebView 组件&#xff0c;在 WebView 组件里可以访问 Web App。Hybrid App 在给用户良好交互体验的同时&#xff0c;还具备了 Web App 的跨平…

Python数学建模问题总结(2)数据可视化Cookbook指南【源自Google可视化团队】

今天跟大家分享一套谷歌数据可视化团队形成的全面的数据可视化指南&#xff0c;涵盖了设计原则、图表分类、图表的选用、样式设计、交互设计、仪表板设计等方面。一、可视化问题不论你是从事数据相关工作&#xff0c;还是业务相关工作&#xff0c;或多或少都会需要用到数据可视…

docker 部署maven服务器用于项目的部署和发布

书接上文 现状: 已经搭建好了maven远程服务器,并将自己的项目从自己的pc部署到maven远程服务器.假设了kie-server集群可以每个node都连接这个远程服务器 要做的: 1.创建kie-server集群的时候设置环境变量. 2.看是否能连上自己搭建的maven服务器.3.如果2 ok 把kie-server需要…

干货|app自动化测试之Appium 原理 与 JsonWP 协议分析

想要使用 Appium 进行测试&#xff0c;那么就一定要先了解Appium的原理。Appium 不仅能够实现移动端的 JSONWP&#xff0c;并且延伸到了 Selenium 的 JSONWP&#xff0c;它能够控制不同移动设备的行为&#xff0c;例如通过会话安装和卸载 APP。Appium 原理图中依赖关系解释&…

MySQL高级 【视图】

目录 1&#xff1a;视图 1.1&#xff1a;介绍 1.2&#xff1a;语法 1.3&#xff1a;检查选项 1.4&#xff1a;视图的更新 1.5&#xff1a;视图作用 1.6&#xff1a;案例 1&#xff1a;视图 1.1&#xff1a;介绍 视图&#xff08;View&#xff09;是一种虚拟存在的表。…