jvm 致命错误退出,生成hs_err_pid.log文件中:
--------------- T H R E A D --------------- Current thread (0x00007f47400d1800): JavaThread "C2 CompilerThread3" daemon [_thread_in_native, id=49108, stack(0x00007f47262c2000,0x00007f47263c3000)] Stack: [0x00007f47262c2000,0x00007f47263c3000], sp=0x00007f47263bd2f0, free space=1004k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [libjvm.so+0x8196f4] PhaseIdealLoop::build_loop_late_post(Node*)+0x144 V [libjvm.so+0x819cac] PhaseIdealLoop::build_loop_late(VectorSet&, Node_List&, Node_Stack&)+0x13c V [libjvm.so+0x81c8c5] PhaseIdealLoop::build_and_optimize(bool, bool)+0x835 V [libjvm.so+0x4a294f] Compile::Optimize()+0x73f V [libjvm.so+0x4a5879] Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool)+0x13c9 V [libjvm.so+0x3f2615] C2Compiler::compile_method(ciEnv*, ciMethod*, int)+0x1f5 V [libjvm.so+0x4afeaa] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xc9a V [libjvm.so+0x4b0e56] CompileBroker::compiler_thread_loop()+0x5d6 V [libjvm.so+0xa75543] JavaThread::thread_main_inner()+0x103 V [libjvm.so+0xa7568c] JavaThread::run()+0x11c V [libjvm.so+0x926268] java_start(Thread*)+0x108 C [libpthread.so.0+0x7df3] start_thread+0xc3 Current CompileTask: C2:5995393 13330 % ! 4 com.app.data.test.Tester::run @ 126 (219 bytes)
说明 jit编译线程(C2 CompilerThread3) 执行异常,导至jvm退出。
方法:不让jvm 编译这个类或升级jvm
不让jvm 编译这个类:
增加参数JVM:+XX:CompileCommand=exclude,com/app/data/test/Tester,run
(XX:CompileCommand=exclude,包路径,方法名)
也可以写通配符:+XX:CompileCommand=exclude,com/app/data/test/T*,c*
配置完成后,可以在测试环境验证一下,jvm不对其编译,方法是:
使用jvm参数: -XX:+PrintCompilation -XX:+CITime, 可以在控制台打印出jvm jit编译情况
比如:java -XX:+PrintCompilation -XX:+CITime -XX:CompileCommand=exclude,com/app/data/test/Tester,run -cp ../libs/*:*.jar com.app.Startup
日志中:
### Excluding compile: com.app.data.test.Tester::run
说明该类被排除了,不编译
另外: CompilerThread 也会导至cpu利用率升高
-XX:CompileCommand说明:转自(http://blog.csdn.net/ning0323/article/details/75451955)
参数:-XX:CompileCommand 含义: Specifies a command to perform on a method. 该参数用于定制编译需求,比如过滤某个方法不做JIT编译 若未指定方法描述符,则对全部同名方法执行命令操作,具体如何指定见下文[举例] 可使用星号通配符(*)指定类或方法,具体如何使用见下文[举例] 该参数可多次指定,或使用 换行符(\n)分隔参数后的多个命令 解析完该命令后,JIT编译器会读取.hotspot_compiler文件中的命令,该参数也可写在.hotspot_compiler文件中 可使用-XX:CompileCommandFile指定.hotspot_compiler文件为其他文件 用法: -XX:CompileCommand=command,method[,option] 命令: exclude,跳过编译指定的方法 compileonly,只编译指定的方法 inline/dontinline,设置是否内联指定方法 print,打印生成的汇编代码 break,JVM以debug模式运行时,在方法编译开始处设置断点 quiet,不打印在此命令之后、通过-XX:CompileCommand指定的编译选项 log,记录指定方法的编译日志,若未指定,则记录所有方法的编译日志 其他命令,option,help 举例: 1. 设置编译器跳过编译com.jvmpocket.Dummy类test方法的4种写法 -XX:CompileCommand=exclude,com/jvmpocket/Dummy.test -XX:CompileCommand=exclude,com/jvmpocket/Dummy::test -XX:CompileCommand=exclude,com.jvmpocket.Dummy::test -XX:CompileCommand="exclude com/jvmpocket/Dummy test" 2. 设置编译器只跳过编译java.lang.String类int indexOf(String)方法 -XX:CompileCommand="exclude,java/lang/String.indexOf,(Ljava/lang/String;)I" 3. 设置编译器跳过编译所有类的indexOf方法 -XX:CompileCommand=exclude,*.indexOf
相关推荐
总的来说,"nginx-upstream-jvm-route-1.15"是一个针对Nginx 1.15版本的解决方案,它允许用户通过upstream模块更灵活地管理与JVM应用服务器的交互,并解决了配置过程中可能出现的特定错误。通过深入理解和应用该项目...
Moonbox(月光宝盒)是JVM-Sandbox生态下的,基于jvm-sandbox-repeater重新开发的一款流量回放平台产品。在jvm-sandbox-repeater基础上提供了更加丰富功能,同时便于线上部署和使用,更多对比参考。 使用场景 你...
赠送jar包:metrics-jvm-3.1.5.jar; 赠送原API文档:metrics-jvm-3.1.5-javadoc.jar; 赠送源代码:metrics-jvm-3.1.5-sources.jar; 赠送Maven依赖信息文件:metrics-jvm-3.1.5.pom; 包含翻译后的API文档:...
赠送jar包:metrics-jvm-3.1.5.jar; 赠送原API文档:metrics-jvm-3.1.5-javadoc.jar; 赠送源代码:metrics-jvm-3.1.5-sources.jar; 赠送Maven依赖信息文件:metrics-jvm-3.1.5.pom; 包含翻译后的API文档:...
JVM调优总结 -Xms -Xmx -Xmn -Xss JVM 调优是 Java virtual machine 的性能优化,通过调整 JVM 的参数来提高 Java 应用程序的性能。其中,-Xms、-Xmx、-Xmn、-Xss 是四个重要的参数,分别控制 JVM 的初始堆大小、...
代码如下:failed to create jvm error code -4 这一般应是内存不够用所致,解决方法参考如下。 打开 Android Studio 安装目录下的bin目录,查找并打开文件 studio.exe.vmoptions,修改代码: 代码如下:-Xmx512m 为...
"nginx-upstream-jvm-route-0.1.tar.gz"正是为了解决这个问题而设计的一个解决方案。 首先,让我们了解一下Nginx的Upstream模块。Upstream模块允许Nginx将接收到的请求转发到一组后端服务器,可以根据配置的策略...
项目名为"jvm-rs-main",通过这个项目,我们可以深入学习Rust语言与JVM的交互,以及如何构建一个简化版的JVM。 一、Rust语言的魅力 Rust是一种系统级编程语言,它强调安全、并发和速度。它的内存管理模型避免了空...
nginx_upstream_jvm_route 是一个 Nginx 的扩展模块,用来实现基于 Cookie 的 Session Sticky 的功能。 安装方法(进入Nginx源码目录): #patch -p0 < /path/to/this/directory/jvm_route.patch # ./configure -...
JVM,MIB,可通过SNMP协议监控JVM运行情况
本资料"jvm-full-gc调优-jvm-full-gc.zip"显然是针对如何减少和优化JVM的Full GC进行深入探讨的。以下将详细介绍JVM Full GC的相关知识点。 1. **理解JVM内存结构**:Java内存主要分为堆内存(Heap)和非堆内存...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
【标题】"Jvm调优练习-jvm-tuning.zip" 提供了一个实践 JVM(Java Virtual Machine)调优的机会,这是一项至关重要的技能,特别是在处理大型、高性能的Java应用程序时。JVM调优涉及到调整一系列参数,以优化应用程序...
JVM-java-springboot-demo.zip
是生态体系下的重要模块,它具备了JVM-Sandbox的所有特点,插件式设计便于快速适配各种中间件,封装请求录制/回放基础协议,也提供了通用可扩展的各种丰富API。 目标人群 - 面向测试开发工程师 线上有个用户请求一直...
此资源有两个文件,含 nginx-upstream-jvm-route 和 nginx 对应版本,都是tar.gz文件。 安装方法网上很多就不写了,亲测可用。 不用担心版本不匹配造成安装失败,再浪费积分去到处下载尝试的烦恼。 此资源有两个文件...
这个名为"jvm-nmt-tracing-master.zip"的压缩包可能包含一个Python项目,用于帮助开发者利用NMT进行JVM内存分析。Python在数据处理和自动化方面具有强大能力,可以很好地与JVM的诊断工具结合,如jinfo、jmap和jcmd,...
JVM安全点 - 副本
JVM常见参数 - 副本
JVM调优步骤 - 副本