封绝的世界

jvm调优工具使用

java -XX:+PrintFlagsInitial 查看本机初始值 java -XX:+PrintFlagsFinal
jinfo -flags

必须要会的JVM性能监测工具(JVisualVM)

https://zhuanlan.zhihu.com/p/339676111
https://www.cnblogs.com/baby123/p/11551626.html
要使用 VisualGC 必须在远程机上启动jstatd代理程序,否则会显示 “not supported for this jvm” 错误
jstatd
Could not create remote object
access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubClasses" "write")
java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubClasses" "write")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:372)
at java.security.AccessController.checkPermission(AccessController.java:559)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.lang.System.setProperty(System.java:783)
at sun.tools.jstatd.Jstatd.main(Jstatd.java:139)
这是与安全权限相关的问题。
粗暴的解决办法:

在jdk的\JRE\LIB\SECURITY下把java.policy文件的
grant{
......
};
的最后加入
permission java.security.AllPermission;

JVM在遇到OOM(OutOfMemoryError)时生成Dump文件

方法一:

命令:jmap -dump:(live,)format=b,file=heap.bin

file:保存路径及文件名
pid:进程编号(windows通过任务管理器查看,linux通过ps aux查看,jsp查看java进程)
live: 导出前进行full gc只保留存活的对象

dump文件可以通过MemoryAnalyzer(MAT)分析查看,可以查看dump时对象数量,内存占用,线程情况等。

方法二:让JVM在遇到OOM(OutOfMemoryError)时生成Dump文件

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/heap/dump

利用Arthas进行简单的故障注入

https://blog.csdn.net/xiao__jia__jia/article/details/114944434

posted @ 2022-03-17 10:42  天边的云云  阅读(114)  评论(0编辑  收藏  举报