JDK本身是提供了一些监控工具,有一些是命令行,也有图形界面。本次介绍命令行如何进行监控。

命令行是非常重要的,因为在我们生产环境基本上是没有图形界面的,完全是通过命令行。

主要内容:

  • JVM的参数类型
  • 运行时JVM参数查看
  • jstat查看虚拟机统计信息
  • jmap+MAT实战内存溢出
  • jstack实战死循环与死锁

JVM参数类型

那么都有哪些JVM参数类型呢?一共分为三大类

  • 标准参数
  • X参数
  • XX参数

标准参数

1.-help

2.-server -client

3.-version -showversion

4.-cp -classpath

标准参数,在各个版本的JVM里面中,基本保持不变。相对比较稳定

例如:java -help

X参数

  • 非标准参数

也就是说在各个版本的JVM中可能会变,但是变化的也比较小。

1.-Xint:解释执行

2.-Xcomp:第一次使用就编译成本地代码

3.-Xmixed:混合模式,JVM自己来决定是否编译成本地代码

举例:

但是我们这块X参数平时用的并不多,用的更多而是后面这块XX参数。

XX参数

这块参数用的是非常多,相信许多同学在网上会经常看到XX参数来设置JVM。我们先来看下它都有什么特点。

特点:

  • 非标准化参数化
  • 相对不稳定
  • 主要用于JVM调优和Debug

分类

主要分为两大类

  • Boolean类型

格式:-XX:[+-]表示启用或者禁用name属性。其中+号表示启用该参数,-号表示禁用该参数。

比如:

-XX:+UseConcMarkSweepGC

表示启用了CMS垃圾收集器

-XX:+UseG1GC

表示启用了G1垃圾收集器

  • 非Boolean类型

格式:-XX:=表示name属性的值是value,主要是以key,value形式存在。

比如:

-XX:MaxGCPauseMillis=500

表示GC最大的停顿时间是500ms。

-XX:GCTimeRatio=19

表示GCTimeRatio等于19。

小结

以上先简单了解一下分为两大类:Boolean 与 非Boolean类型。Boolean是带有+-号,而非Boolean类型是key,value形式存在,中间用等号。

-Xmx -Xms

这两个参数,相信许多小伙伴们都见过。这两个参数分别是一个设置最大内存,一个设置最小内存。

  • 不是X参数,而是XX参数

    1.-Xms等价于-XX:InitialHeapSize

    2.-Xmx等价于-XX:MaxHeapSize

    3.-Xss等价于-XX:ThreadStackSize

InitialHeapSize初始堆的大小。MaxHeapSize最大的堆大小。ThreadStackSize线程堆栈大小

可以先简单查看下运行后的进程,最大的堆大小值。

查看一下线程的堆栈大小。

可以看到这块的线程堆栈大小有1024k,默认情况不做修改的话,堆栈其中的一个线程就有1024k,这线程应该还是比较大的。我们在调优的时候还是会把这个值调小一些。

这次就先介绍到这里,下一章讲介绍如何查看JVM运行时参数

推荐

文末

文章收录至

Github: https://github.com/CoderMerlin/coder-programming

Gitee: https://gitee.com/573059382/coder-programming

欢迎关注并star~

[JVM教程与调优] JVM都有哪些参数类型?的更多相关文章

  1. [JVM教程与调优] 什么是JVM运行时参数?

    我们接着上一章节[JVM教程与调优] JVM都有哪些参数类型?的内容继续讲解,这章我们来介绍一下:如何查看JVM运行时参数.这一点十分重要,因为我们在进行JVM参数调优的时候,我们首先得知道目前系统运 ...

  2. [JVM教程与调优] 了解JVM 堆内存溢出以及非堆内存溢出

    在上一章中我们介绍了JVM运行时参数以及jstat指令相关内容:[JVM教程与调优] 什么是JVM运行时参数?.下面我们来介绍一下jmap+MAT内存溢出. 首先我们来介绍一下下JVM的内存结构. J ...

  3. Java系列笔记(4) - JVM监控与调优【转】

    Java系列笔记(4) - JVM监控与调优[转]   目录 参数设置收集器搭配启动内存分配监控工具和方法调优方法调优实例     光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在 ...

  4. 2020年薪30W的Java程序员都要求熟悉JVM与性能调优!

    前言 作为Java程序员,你有没有被JVM伤害过?面试的时候是否碰到过对JVM的灵魂拷问?   一.JVM 内存区域划分 1.程序计数器(线程私有) 程序计数器(Program Counter Reg ...

  5. Java系列笔记(4) - JVM监控与调优

    目录 参数设置收集器搭配启动内存分配监控工具和方法调优方法调优实例     光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之.通过学习,我觉得JVM ...

  6. JVM监控与调优

    目录 参数设置收集器搭配启动内存分配监控工具和方法调优方法调优实例     转:http://www.cnblogs.com/zhguang/p/java-jvm-gc.html光说不练假把式,学习J ...

  7. [java] JVM监控与调优

    原文出处:http://www.cnblogs.com/zhguang/p/java-jvm-gc.html   光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分 ...

  8. Tomcat性能调优-JVM监控与调优

    参数设置 在Java虚拟机的参数中,有3种表示方法用"ps -ef |grep "java"命令,可以得到当前Java进程的所有启动参数和配置参数: 标准参数(-),所有 ...

  9. JVM调优(二)经验参数设置

    调优设置具体解析 堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5 ...

随机推荐

  1. 阿里大数据竞赛season1 总结

    关于样本测试集和训练集数量上,一般是选择训练集数量不小于测试集,也就是说训练集选取6k可能还不够,大家可以多尝试得到更好的效果: 2. 有人提出归一化方面可能有问题,大家可以查查其他的归一化方法,但是 ...

  2. All Tips

    Outlook分享心得 这是在爱奇艺的一场Outlook分享会上我记录的笔记. Read More 分享一点"关于应届生如何写简历"的人生经验 应届生如何写好一份求职简历是一件重要 ...

  3. Selenium 实现自动下载文件(FirefoxOptions,FirefoxProfile) - 根据Selenium Webdriver3实战宝典

    Firefox 版本是72geckodriver 是 0.24selenium 是3.14 代码中注释有关于FirefoxOptions,FirefoxProfile的解释,请各位寻找一下,不做另外解 ...

  4. 爬虫(二)requests 登陆某检索网站

    1 import requests import os from PIL import Image import pytesseract import re rootUrl = xxx # 构建登录页 ...

  5. Dart 运行速度测评与比较

    引言 Dart 是一门优秀的跨平台语言,尽管生态方面略有欠缺,但无疑作为一门编程语言来说,Dart 是很优美,很健壮的,同时也引入了一些先进的编程范式,值得去学习. 测试内容 现在,我们就来测评一下D ...

  6. 解决微信小程序视频组件层级过高的问题

    本文首发于我的个人博客:http://www.fogcrane.org 前言 在微信小程序的开发中,总有一些"VIP"组件,他们的层级,高得让人抓狂,总是凌驾于很多其他低层级组件之 ...

  7. Keras在MNIST实现LeNet-5模型训练时的错误?

    当使用Keras API 训练模型时,训练时报错? UnknownError (see above for traceback): Failed to get convolution algorith ...

  8. Canny检测算法与实现

    1.原理 图象边缘就是图像颜色快速变化的位置,对于灰度图像来说,也就是灰度值有明显变化的位置.图像边缘信息主要集中在高频段,图像锐化或检测边缘实质就是高通滤波.数值微分可以求变化率,在图像上离散值求梯 ...

  9. JavaFX之多个FXML加载和通信

    前言 在使用了FXML设计布局后,新的问题随之而来,当一个程序需要多个界面时,我们不可能在一个FXML中写出全部布局,这样太过于臃肿不易查看和维护(当然非要这么做也是可以的),这里就涉及到如何在一个F ...

  10. 添加bash命令

    cd ~/.bash vim mya 键入 #!/bin/bash hostname -i :x 保存退出 source ~/.bash_profile 生效