随笔分类 -  Java

Java应用性能瓶颈分析思路
摘要:1 问题描述 因产品架构的复杂性,可能会导致性能问题的因素有很多。根据部署架构,大致的可以分为应用端瓶颈、数据库端瓶颈、环境瓶颈三大类。可以根据瓶颈的不同部位,选择相应的跟踪工具进行跟踪分析。 应用层面瓶颈大致有如下两类,一是应用服务端复杂的逻辑处理导致应用端代码执行慢;二是资源锁争用导致线程阻塞问 阅读全文

posted @ 2023-08-30 16:59 王.小辉 阅读(387) 评论(0) 推荐(0) 编辑

【Real World Case】异常捕获失败导致事务未提交问题
摘要:1、问题现象 从用户层面看,问题时段多个功能出现功能卡住、”Lock wait timeout exceeded; try restarting transaction”等事务等待超时报错。 从数据库层面看,跟踪数据库会话,发现存在较多阻塞,阻塞源会话ID固定,阻塞源会话为非活动状态,会话相关SQL 阅读全文

posted @ 2022-01-14 15:56 王.小辉 阅读(281) 评论(0) 推荐(0) 编辑

【Real World Case】简记一则-Xdebug导致的java应用Hang
摘要:某生产项目不定期出现大面积响应卡顿,问题时段检查应用和数据库CPU、内存占用正常,存在少量数据库会话阻塞。抓取问题时段线程dump分析,在问题时段大量线程位于at java.lang.Class.getDeclaredConstructors0(Native Method)方法,进一步排查发现以De 阅读全文

posted @ 2021-12-20 18:30 王.小辉 阅读(75) 评论(0) 推荐(0) 编辑

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project demo: Fatal error compiling
摘要:IDEA在compile出现Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project demo: Fatal error compi 阅读全文

posted @ 2021-06-16 15:50 王.小辉 阅读(6009) 评论(0) 推荐(1) 编辑

Java应用内存泄漏/内存占用高问题分析
摘要:问题描述 内存泄漏(Memory leak)是在计算机科学中,由于疏忽或错误造成程序未能释放已经不再使用的内存。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。 GSCloud产品中,真正的内存泄漏比较 阅读全文

posted @ 2021-04-11 15:53 王.小辉 阅读(849) 评论(0) 推荐(0) 编辑

Java内存溢出(Out Of Memory,简称OOM)Troubleshooting
摘要:1 问题描述 内存溢出(Out Of Memory,简称OOM)是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于能提供的最大内存。此时程序就运行不了,系统会提示内存溢出,有时候会自动关闭软件,重启电脑或者软件后释放掉一部分内存又可以正常运行该软件,而由系统配置、数据 阅读全文

posted @ 2021-04-11 15:35 王.小辉 阅读(1685) 评论(0) 推荐(0) 编辑

Java CPU High Troubleshooting
摘要:问题描述 性能测试环境不定期出现系统整体响应卡顿,在问题时段CPU及内存资源占用率较高,高峰时段CPU占用率超过90%。 故障排查 通过top -H命令查看 top CPU 线程,并通过printf "%x\n" PID命令,将PID转换为nid值。 查看top CPU线程信息,并确认现场信息,发现 阅读全文

posted @ 2021-04-11 15:28 王.小辉 阅读(123) 评论(0) 推荐(0) 编辑

JProfiler使用说明及常用案例分析
摘要:1 配置远程连接 (1)启动JProfiler,选择Attach to a running JVM (2)选择Quick Attach,然后选择On another computer,然后选择Edit,选择直接SSH连接并填写远程环境信息。填完远程信息后选择start开始跟踪。 (3)远程机器连接成 阅读全文

posted @ 2021-04-11 15:22 王.小辉 阅读(2739) 评论(0) 推荐(0) 编辑

MAT(Eclipse Memory Analyzer)使用说及注意事项
摘要:1 下载地址 Eclipse Memory Analyzer Open Source Project | The Eclipse Foundation https://www.eclipse.org/mat/ 2 通过配置设置文件MemoryAnalyzer.ini的-Xmx参数修改工具内存分配。因 阅读全文

posted @ 2021-04-11 15:14 王.小辉 阅读(877) 评论(0) 推荐(0) 编辑

Java Troubleshooting
摘要: 阅读全文

posted @ 2021-04-10 23:59 王.小辉 阅读(95) 评论(0) 推荐(0) 编辑

Java Native Memory Tracking(NMT)
摘要:典型特性 (1)NMT功能默认关闭 (2)借助jcmd工具可以获取摘要/详细报告 (3)建立基线并比较其变换量 (4)在进程退出时打印内存报告 1.开启方法 启动目录中添加如下参数,默认为off,可以设置为summary或detail来打印概要或详细信息。 -XX:NativeMemoryTrack 阅读全文

posted @ 2021-01-22 10:52 王.小辉 阅读(696) 评论(0) 推荐(0) 编辑

Java GC log analyze
摘要:一个简单易用的GC日志分析工具 Universal JVM GC analyzer - Java Garbage collection log analysis made easyhttps://gceasy.io/ 阅读全文

posted @ 2020-09-03 10:19 王.小辉 阅读(264) 评论(0) 推荐(0) 编辑

将Jcmd或Jstack打印的内容保存到文本
摘要:jcmd <pid | main class> <command ...|PerfCounter.print|-f file> >> LogFileName.txt jstack [-options] <pid> >>LogFileName.txt ./jcmd 51746 GC.class_his 阅读全文

posted @ 2020-01-02 09:59 王.小辉 阅读(2254) 评论(0) 推荐(0) 编辑

CATALINA_OPTS
摘要:按照catalina.sh文档中的注释,CATALINA_OPTS(可选)是在执行“开始”,“运行”或“调试”命令时使用的Java运行时选项。在此处包含所有选项,而不是在JAVA_OPTS中包含所有选项,这些选项只能由Tomcat本身使用,而不能由停止进程,版本命令等使用。示例包括堆大小,GC日志记 阅读全文

posted @ 2019-11-12 14:56 王.小辉 阅读(4486) 评论(0) 推荐(0) 编辑

jar包反编译
摘要:记录一个jar包的查看工具 JD-GUI Java Decompiler http://java-decompiler.github.io/ 阅读全文

posted @ 2019-11-12 14:39 王.小辉 阅读(1324) 评论(0) 推荐(1) 编辑

导航

< 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
点击右上角即可分享
微信分享提示