java gc log调优_Java 开启 gc 日志

构建一个 jar 包程序

使用 Spring Boot 构建一个简单的 web 程序,可以直接使用 java -jar 来启动。

@RestController

@RequestMapping("/root")

@SpringBootApplication

public class SbDemoApplication {

public static void main(String[] args) {

SpringApplication.run(SbDemoApplication.class, args);

}

@RequestMapping("/hello")

public String hello() {

return "Hello";

}

}

启动

使用 -verbose:gc 或 -XX:+PrintGC 这两个参数可以创建基本的 GC 日志,使用 -XX:+PrintGCDetails 可以创建更加详细的日志。

$ java -jar -XX:+PrintGCDetails sb-demo.jar

[0.002s][warning][gc] -XX:+PrintGCDetails is deprecated. Will use -Xlog:gc* instead.

[0.009s][info ][gc,heap] Heap region size: 1M

[0.013s][info ][gc ] Using G1

[0.013s][info ][gc,heap,coops] Heap address: 0x0000000740000000, size: 2048 MB, Compressed Oops mode: Zero based, Oop shift amount: 3

启动 sb-demo.jar 发现提示 -XX:+PrintGCDetails 已经不推荐使用了,要使用 -Xlog:gc*。那我只好去 Oracle 的网站查询 -Xlog 如何使用,我使用的是 JDK 10 ,那就查询这个版本的 Tools and Commands Reference .

$ java -jar -Xlog:gc sb-demo.jar

[0.010s][info][gc] Using G1

[0.492s][info][gc] GC(0) Pause Young (G1 Evacuation Pause) 14M->2M(128M) 5.058ms

使用上面的命令就能开启 gc 日志了,默认是info级别的,可以使用下面的方式修改gc日志的级别

$ java -jar -Xlog:gc=debug sb-demo.jar

[0.007s][debug][gc] ConcGCThreads: 1

[0.007s][debug][gc] ParallelGCThreads: 4

[0.008s][debug][gc] Initialize mark stack with 4096 chunks, maximum 16384

[0.010s][info ][gc] Using G1

[0.499s][info ][gc] GC(0) Pause Young (G1 Evacuation Pause) 14M->2M(128M) 4.556ms

上面的方式只能在标准输出中看到打印日志,我们可以设置 gc日志输出到文件中,便于我们分析问题。

$ java -jar -Xlog:gc=debug:file=gc.log sb-demo.jar

使用上面的方式就把 gc 日志输出到了文件 gc.log 中。

$ head gc.log

[0.008s][debug][gc] ConcGCThreads: 1

[0.008s][debug][gc] ParallelGCThreads: 4

[0.008s][debug][gc] Initialize mark stack with 4096 chunks, maximum 16384

[0.010s][info ][gc] Using G1

当服务一直运行,gc.log会不断增加,最后会撑满我们的盘。我们可以设置日志的文件大小和数量

$ java -jar -Xlog:gc=debug:file=gc.log:uptimemillis,pids:filecount=5,filesize=1024 sb-demo.jar

上面设置只输出 5 个文件,每个文件 1M,文件的基本名字是 gc.log, 使用启动的时间和进程id来分割日志。

分析 gc log

可以直接打开日志文件查看或者上传到 一些gc日志分析的网站上,直接出报表,至于这些在线的 Java gc 日志分析站点你可以 google一些,有很多供你选择。

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

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

相关文章

大数据时代的公共安全治理

未来,大数据将成为社会基础设施的一部分,跟公路、自来水、电一样,成为人们生活不可或缺的一部分。但大数据的作用并不仅仅局限于为普通消费者提供生活必须服务,它已经开始在信息产业、公共安全、交通运输、金融、水利等领域中发挥…

CCNA第二讲笔记

网络定义:一组由介质(线缆)互联的网络设备(路由器、交换机)和终端系统(PC); 工作组:局域网范畴,范围最小的局域网,且不涉及网络设备。台式机需要有…

晶科电力打造山东省最大物流港分布式光伏项目

近日,晶科电力有限公司宣布,由该公司投建的山东省最大物流港分布式光伏项目已破土动工,成为山东省又一标志性光伏项目。 该项目装机量为6兆瓦,占用物流港厂房屋顶面积约68330平方米,平均每年发电量约601.22万kWh&#…

服务器资源管理器视图的添加显示的步骤

MVC视图查看数据库表结构时,通常会打开服务器资源管理器视图,在服务器资源管理器视图中能查看表的数据集及表结构 打开的方法为: ①可使用快捷键: ctrlaltS ②也可添加“服务器资源管理器视图”到“视图”工具菜单,做法…

java中怎么用代码打出ASCII码字符_JAVA实现打印ascii码表代码

我就废话不多说了&#xff0c;大家还是直接看代码吧~package com.jalor;public class AAAA {public static void main(String[] args) {outputA(65);outputA(97);}// 打印ascii码表public static void outputA(int count){for (int i 0; i < 26; i) {System.out.print((cha…

javascript this指针指向?

前言 理解javascript的指针就需要先了解js的执行环境和作用域&#xff01;执行环境的定义了变量或函数有权访问的其他数据&#xff0c;决定了它们各自的行为。每个执行环境都有一个与之关联的变量对象&#xff0c;环境中定义的所有的变量和函数都保存在这个对象中。虽然我们编写…

能源局将提高光伏“领跑者”项目技术指标

记者从权威渠道获悉&#xff0c;国家能源局正计划对光伏“领跑者”中有关单多晶的转换效率标准等细节进行修改。“领跑者”计划中&#xff0c;光电转换效率的修订工作将在今年3月底展开&#xff0c;主要向各大相关机构、企业征求意见&#xff0c;如果争议较多&#xff0c;定稿时…

phpize增加php模块

一&#xff0c;phpize的好处 什么时候我们要用phpize呢&#xff1f;我们在安装php时&#xff1a; ./configure --prefix/usr/local/php --with-mysql/usr/local/mysql --with-zlib-dir --with-freetype-dir/usr --with-jpeg-dir/usr --with-png-dir/usr --enable-gd-native-ttf…

java安全权限配置_使用Spring安全表达式控制系统功能访问权限问题

一、SPEL表达式权限控制从spring security 3.0开始已经可以使用spring Expression表达式来控制授权&#xff0c;允许在表达式中使用复杂的布尔逻辑来控制访问的权限。Spring Security可用表达式对象的基类是SecurityExpressionRoot。表达式函数描述hasRole([role])用户拥有指定…

SlidingMenu的使用,结合Fragment(eclipse环境)

首先下载SlidingMenu&#xff0c;有Library和Sample&#xff0c;然后在自己的项目中引入类库&#xff08;引入智慧北京工作空间的Library&#xff09;&#xff0c;然后V4包会发生冲突&#xff0c;删掉自己项目Libs目录下的V4包即可 侧滑布局和主界面布局都先用一个空布局填充一…

log4j日志文件配置说明及使用

一.log4j.properties文件格式说明&#xff1a; log4j.rootLoggerinfo, stdoutlog4j.appender.stdoutorg.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layoutorg.apache.log4j.PatternLayout# Pattern to output the callers file name and line number.log4j.appende…

java如何做全局缓存_传智播客JNI第七讲 – JNI中的全局引用/局部引用/弱全局引用、缓存jfieldID和jmethodID的两种方式...

讲解JNI中的全局引用/局部引用/弱全局引用、缓存jfieldID和jmethodID的两种方式&#xff0c;并编写两种缓存方式的示例代码。1.从Java虚拟机创建的对象传到本地C/C代码时会产生引用&#xff0c;根据Java的垃圾回收机制&#xff0c;只要有引用存在就不会出发该引用指向的Java对象…

起一卦,还是那个破事。还是大凶。

公元&#xff1a;2013年6月20日11时48分46秒 阳3局农历&#xff1a;2013年05月12日11时48分芒种&#xff1a;2013-6-5 20:44:00 小暑&#xff1a;2013-7-7 7:09:00干支&#xff1a;癸巳年 戊午月 丁巳日 丙午时 旬空&#xff1a;午未空 子丑空 子丑空 寅卯空直符&#…

老工业基地调整改造与振兴

老工业基地调整改造与振兴 一、运用“两只手”&#xff0c;加快工业结构调整 一方面&#xff0c;运用市场机制即“看不见的手”进行调整。通过市场竞争机制、价格波动机纠、供求均衡机制、优胜劣汰机制等&#xff0c;实现资源的合理流动和优化配置。 另一方面&#xff0c;运用宏…

如何使用DNS反向映射来扫描IPv6地址?

目前增加的IPv6地址空间不仅提高了对启发式算法的使用&#xff08;执行IPv6地址扫描时&#xff09;&#xff0c;而且还推动了人们探索替代技术用于查找IPv6节点。本文中我们将探讨如何使用一种极其强大的向量来发现IPv6节点&#xff1a;使用DNS反向映射。 IPv6地址扫描攻击通常…

java jre下载安装教程_java JRE下载、安装以及环境变量教程

java JRE下载、安装以及环境变量教程作者:小丸子 来源:PC下载网时间:2017-10-17 19:12:33JRE也就是(Java Runtime Environment)Java运行环境&#xff0c;是运行JAVA程序所必须的环境的集合&#xff0c;包含各种类库。今天PC下载网小编为您介绍jre的下载 安装 跟环境变量的配置1…

java环境变量设置与java查看安装路径

把jdk安装到计算机中之后&#xff0c;我们来进行设置使java环境能够使用。 首先右键点我的电脑。打开属性。然后选择“高级”里面的“环境变量”&#xff0c;在新的打开界面中的系统变量需要设置三个属性“JAVA_HOME”、 “path”、“classpath”,其中在没安装过jdk的环境下。p…

C#设计模式学习笔记-单例模式

C#设计模式学习笔记-单例模式 最近在学设计模式&#xff0c;学到创建型模式的时候&#xff0c;碰到单例模式&#xff08;或叫单件模式&#xff09;&#xff0c;现在整理一下笔记。 在《Design Patterns&#xff1a;Elements of Resuable Object-Oriented Software》中的定义是&…

kotlin为什么比java编译慢_为什么Kotlin编译速度比Scala快? [关闭]

虽然我认为这个问题不适合Stack Overflow&#xff0c;因为它倾向于主要产生基于意见的答案&#xff0c;但这里有一个尝试&#xff1a;你有两种不同的语言&#xff0c;特别是关于类型系统&#xff0c;以及两个完全独立的编译器实现 . 所以期望它们具有“相同”的编译速度已经是一…

锡山国土推行数据中心“在线变更”

为全面提高全区土地变更工作效率&#xff0c;国土锡山分局全面推行数据中心在线变更。由不动产登记科利用数据中心管理平台&#xff0c;将遥感影像、监测信息以及监测图斑的土地利用现状信息、土地利用总体规划信息录入“数据中心”&#xff0c;制定我区的变更调查工作方案&…