work hard work smart

专注于Java后端开发。 不断总结,举一反三。
随笔 - 1158, 文章 - 0, 评论 - 153, 阅读 - 186万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  S.Java性能监控和调优

摘要:与 jstack实战死循环与死锁学习笔记 介绍的方法一致。 使用top命令查看 top -p 21919 线程进程号pid的内存情况 按H,获取每个线程的内存情况.PID为线程号。 这里占用CPU最高的线程为19664 此线程转为16进制得到0x4cd0, printf "%x\n" 19664 执 阅读全文

posted @ 2022-08-27 23:11 work hard work smart 阅读(80) 评论(0) 推荐(0) 编辑

摘要:一、添加远程IP地址 选择“远程”, 添加“远程主机“,填写IP地址,然后确定 二、 使用JMX技术,修改Catalina.sh JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.p 阅读全文

posted @ 2022-08-27 22:40 work hard work smart 阅读(151) 评论(0) 推荐(0) 编辑

摘要:jmap 此命令用来查看内存信息,实例个数以及占用内存大小 jmap jmap -histo -F 27515 > ./log.txt 查看堆信息 jmap -heap 进程Id Attaching to process ID 27515, please wait... Debugger attac 阅读全文

posted @ 2022-08-27 21:14 work hard work smart 阅读(64) 评论(0) 推荐(0) 编辑

摘要:Kind.ENTRY 入口,默认值 Kind.RETURN: 返回 Kind.THROW: 异常 Kind.Line: 行 一、返回时拦截 2、运行和返回结果 1)、运行 2)、调用接口: http://127.0.0.1:8080/monitor_tuning/ch4/arg1?name=nick 阅读全文

posted @ 2019-04-25 16:52 work hard work smart 阅读(161) 评论(0) 推荐(0) 编辑

摘要:拦截方法: 1、普通方法 @OnMethod(clazz="", method="") 2、构造函数@OnMethod(claszz="", method="<init>") 3、拦截同名函数,用参数区分 一、拦截构造函数 1、创建接口 2、测试接口 http://127.0.0.1:8080/mo 阅读全文

posted @ 2019-04-25 16:18 work hard work smart 阅读(398) 评论(0) 推荐(0) 编辑

摘要:一、Btrace简介 BTrace可以动态的向目标应用程序的字节码注入追踪代码 用到的技术JavaComplierApi,JVMTI,Agent,Instrumentation+ASM 二、Btrace安装 1、下载 Btrace的Github地址 https://github.com/btrace 阅读全文

posted @ 2019-04-25 14:52 work hard work smart 阅读(415) 评论(0) 推荐(0) 编辑

摘要:一、基于JVisualVM的可视化监控 1、打开C:\Program Files\Java\jdk1.8.0_131\bin下的jvisualvm.exe 2、打开后,会列出本机所有的Java进程 3、安装插件visualvm 1)查看java的版本 2)打开https://visualvm.git 阅读全文

posted @ 2018-12-23 17:18 work hard work smart 阅读(1526) 评论(0) 推荐(0) 编辑

摘要:一、实战死循环导致CPU飙高 top -p pid -H jstack pid printf "%s" 十进制的线程id 二、创建CUP100%实例(死循环) 1、创建CpuController @RestController public class CpuController { @Reques 阅读全文

posted @ 2018-12-23 14:42 work hard work smart 阅读(649) 评论(0) 推荐(0) 编辑

摘要:jstatck可以打印JVM内部所有线程 1、查看有哪些java进程 2、查看所有线程的信息 重定向到5579.txt文件中 jstack 5579 > 5579.txt 3、线程的状态 New: 线程还没有启动 RUNNABLE:已经在JVM中执行 BLOCKED: 等待一个锁 WAITING: 阅读全文

posted @ 2018-12-02 23:35 work hard work smart 阅读(283) 评论(0) 推荐(0) 编辑

摘要:jmap MAT内存溢出实践 一、创建Spring Boot工程 进入https://start.spring.io/网站,配置如下图 点击创建工程,然后用Idea或者Eclipse打开 二、创建模拟Heap内存溢出的代码 1、创建MemoryController类 2、创建User类 3、 设置最 阅读全文

posted @ 2018-12-02 22:49 work hard work smart 阅读(373) 评论(0) 推荐(0) 编辑

摘要:可以查看以下信息 [jdk基于1.8] 1、类装载 2、垃圾收集 3、JIT编译 一、类装载 返回参数的含义 二、垃圾收集 jstat -gc 5579 1000 每一秒显示进程号为5579的java进程GC情况 -gc的输出结果含义 PC、PU: 永久代GC次数和耗时 S0C:年轻代中第一个sur 阅读全文

posted @ 2018-12-01 15:53 work hard work smart 阅读(176) 评论(0) 推荐(0) 编辑

摘要:1、查看JVM运行时参数 -XX:+PrintFlagsInitial -XX:PrintFlagsFinal -XX:+UnlockExperimentalVMOptions 解锁实验参数 -XX:+UnlockDiagnosticVMOptions 解锁诊断参数 -XX:+PrintComman 阅读全文

posted @ 2018-12-01 15:16 work hard work smart 阅读(4874) 评论(0) 推荐(0) 编辑

摘要:一、JVM参数类型 1、标准参数 2、X参数 3、XX参数 二、标准参数 1、 -help 2、-server -client 3、 -version -showversion 4、-cp -classpath 三、X参数 非标准化参数 -Xint : 解释执行 -Xcomp:第一次使用就编译成本地 阅读全文

posted @ 2018-12-01 13:49 work hard work smart 阅读(199) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示