返回顶部
首页 > 资讯 > 精选 >docker中运行的JVM参数问题怎么解决
  • 566
分享到

docker中运行的JVM参数问题怎么解决

2023-06-30 01:06:10 566人浏览 八月长安
摘要

这篇文章主要讲解了“Docker中运行的JVM参数问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“docker中运行的JVM参数问题怎么解决”吧!方法一、jcmd命令:jps获取j

这篇文章主要讲解了“Docker中运行的JVM参数问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“docker中运行的JVM参数问题怎么解决”吧!

方法一、jcmd命令:

jps获取java的线程id

jcmd pidVM.flags获取

51152:
-XX:CICompilerCount=3 -XX:InitialHeapSize=526385152 -XX:MaxHeapSize=1073741824 -XX:MaxNewSize=357564416 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=175112192 -XX:OldSize=351272960 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC?

但是以上命令查询的结果不全

方法二、jinfo命令:

jinfo -flag pid

在docker中使用此命令后报错:

Attaching to process ID 1, please wait...
Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process: ptrace(PTRACE_ATTACH, ..) failed for 1: Operation not permitted
sun.jvm.hotspot.debugger.DebuggerException: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process: ptrace(PTRACE_ATTACH, ..) failed for 1: Operation not permitted
        at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal$LinuxDebuggerLocalWorkerThread.execute(LinuxDebuggerLocal.java:163)
        at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal.attach(LinuxDebuggerLocal.java:278)
        at sun.jvm.hotspot.HotSpotAgent.attachDebugger(HotSpotAgent.java:671)
        at sun.jvm.hotspot.HotSpotAgent.setupDebuggerLinux(HotSpotAgent.java:611)
        at sun.jvm.hotspot.HotSpotAgent.setupDebugger(HotSpotAgent.java:337)
        at sun.jvm.hotspot.HotSpotAgent.Go(HotSpotAgent.java:304)
        at sun.jvm.hotspot.HotSpotAgent.attach(HotSpotAgent.java:140)
        at sun.jvm.hotspot.tools.Tool.start(Tool.java:185)
        at sun.jvm.hotspot.tools.Tool.execute(Tool.java:118)
        at sun.jvm.hotspot.tools.JInfo.main(JInfo.java:138)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at sun.tools.jinfo.JInfo.runTool(JInfo.java:108)
        at sun.tools.jinfo.JInfo.main(JInfo.java:76)
Caused by: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process: ptrace(PTRACE_ATTACH, ..) failed for 1: Operation not permitted
        at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal.attach0(Native Method)
        at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal.access$100(LinuxDebuggerLocal.java:62)
        at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal$1AttachTask.doit(LinuxDebuggerLocal.java:269)
        at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal$LinuxDebuggerLocalWorkerThread.run(LinuxDebuggerLocal.java:138)

解决方法:

这其实不是什么 Bug,而是 Docker 自 1.10 版本开始加入的安全特性。

类似于 jmap 这些 jdk 工具依赖于 Linux 的 PTRACE_ATTACH,而是 Docker 自 1.10 在默认的 seccomp 配置文件中禁用了 ptrace。

这篇文章介绍了整个的缘由以及应对方法:JVM in Docker and PTRACE_ATTACH

主要提及三种:

1 –security-opt seccomp=unconfined
简单暴力(不推荐),直接关闭 seccomp 配置。用法:

docker run --security-opt seccomp:unconfined ...

2 –cap-add=SYS_PTRACE
使用 --cap-add 明确添加指定功能:

docker run --cap-add=SYS_PTRACE ...

3 Docker Compose 的支持
Docker Compose 自 version 1.1.0 (2015-02-25) 起支持 cap_add。官方文档:cap_add, cap_drop。用法:

前面的 docker-compose.yml 改写后文件内容如下(相同内容部分就不重复贴了):

version: '2'services:  mysql:    ...  api:    ...    cap_add:      - SYS_PTRACE

解决问题后使用命令:

Attaching to process ID 1, please wait...Debugger attached successfully.Server compiler detected.JVM version is 25.202-b08Non-default VM flags: -XX:CICompilerCount=3 -XX:InitialHeapSize=262144000 -XX:MaxHeapSize=268435456 -XX:MaxNewSize=89128960 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=87031808 -XX:OldSize=175112192 -XX:ThreadStackSize=256 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC Command line:  -Dlog4j2.fORMatMsgNoLookups=true -Xmx256m -Xss256k -Djava.security.egd=file:/dev/./urandom

感谢各位的阅读,以上就是“docker中运行的JVM参数问题怎么解决”的内容了,经过本文的学习后,相信大家对docker中运行的JVM参数问题怎么解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: docker中运行的JVM参数问题怎么解决

本文链接: https://www.lsjlt.com/news/326917.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • docker中运行的JVM参数问题怎么解决
    这篇文章主要讲解了“docker中运行的JVM参数问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“docker中运行的JVM参数问题怎么解决”吧!方法一、jcmd命令:jps获取j...
    99+
    2023-06-30
  • 查看docker中运行的JVM参数问题及解决方法
    方法一、jcmd命令: 1、jps获取java的线程id 2、jcmd pidVM.flags获取 51152:-XX:CICompilerCount=3 -XX:InitialHe...
    99+
    2024-04-02
  • IntelliJ IDEA怎么设置JVM运行参数
    这篇文章主要介绍了IntelliJ IDEA怎么设置JVM运行参数的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇IntelliJ IDEA怎么设置JVM运行参数文章都会有所收获,下面我们一起...
    99+
    2023-06-30
  • JVM的noverify启动参数问题解析
    目录JDK 13 + 版本的问题当 ClassLoader 加载的 Java 字节码时,字节码首先接受校验器(verifier)的校验。校验器负责检查那些指令无法执行的明显的破坏性的...
    99+
    2023-05-19
    JVM noverify 启动参数 JVM noverify 参数 JVM noverify
  • 解决PHP项目在Docker(WSL2)中运行缓慢的问题
    环境 Windows 11 Docker Desktop 4.17.1(开启WSL2) WSL2(Ubuntu-22.04) 前言 最近在使用Docker容器运行PHP项目的时候,发现特别缓慢。例如一...
    99+
    2023-08-31
    docker WSL
  • 使用Pytest.main()运行时参数不生效问题解决
    目录问题回顾前置配置解决办法总结问题回顾 使用pytest.main('-x')运行时遇到失败用例仍继续执行后面的用例,后改成pytest.main(['22...
    99+
    2023-02-07
    Pytest.main() 参数不生效 Pytest.main() 参数
  • jpa中query参数问题怎么解决
    在JPA中,可以使用以下几种方式解决query参数问题:1. 使用命名参数:在JPQL查询语句中使用命名参数,然后在创建Query对...
    99+
    2023-09-13
    jpa
  • 怎么解决电脑运行慢的问题
    本篇内容介绍了“怎么解决电脑运行慢的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!       ...
    99+
    2023-06-28
  • SpringMVC中参数绑定问题怎么解决
    这篇文章主要讲解了“SpringMVC中参数绑定问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringMVC中参数绑定问题怎么解决”吧!1. 参数绑定的过程我们可以回忆一下,...
    99+
    2023-06-29
  • jvm栈溢出问题怎么解决
    JVM栈溢出问题通常是由于递归调用过深或者线程过多导致的。以下是解决JVM栈溢出问题的几种方法: 增加栈的大小:可以通过设置JV...
    99+
    2024-02-29
    jvm
  • StretchDIBits函数参数问题怎么解决
    要解决StretchDIBits函数参数问题,可以考虑以下几种方法:1. 检查参数类型:确保传递给StretchDIBits函数的参...
    99+
    2023-08-19
    StretchDIBits
  • np.meshgrid中的indexing参数问题解决
    目录二维meshgrid函数三维meshgrid函数特别说明meshgrid函数在二维空间中可以简单地理解为将x轴与y轴的每个位置的坐标关联起来形成了一个网格,我们知道空间中的点是由...
    99+
    2023-03-13
    np.meshgrid的indexing参数 np.meshgrid indexing
  • 解决docker运行tomcat提示找不到文件的问题
    目录docker运行tomcat提示找不到文件问题描述线索一:容器退出码线索二:无法找到文件顺藤摸瓜:catalina.sh解决方法docker运行tomcat提示找不到文件 问题描...
    99+
    2023-03-07
    docker运行tomcat提示找不到文件 docker启动tomcat提示找不到文件
  • 怎么解决oracle中ORA-27492无法运行问题
    这篇文章主要讲解了“怎么解决oracle中ORA-27492无法运行问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决oracle中ORA-2749...
    99+
    2024-04-02
  • Lasagne中超参数调优问题怎么解决
    在调优Lasagne中的超参数时,可以采取以下方法: 网格搜索:通过尝试不同的超参数值组合,通过交叉验证或验证集来确定哪组参数能...
    99+
    2024-04-02
  • 怎么解决php56运行pdo失败问题
    这篇文章主要讲解了“怎么解决php56运行pdo失败问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决php56运行pdo失败问题”吧!php56运行pdo失败的解决办法:1、修改p...
    99+
    2023-06-20
  • 怎么解决eclipse运行java程序问题
    要解决Eclipse运行Java程序的问题,可以尝试以下步骤:1. 确保已正确安装Java开发工具包(Java Developmen...
    99+
    2023-08-26
    eclipse
  • 怎么解决oracle 19c sec_case_sensitive_logon参数问题
    这篇文章主要介绍“怎么解决oracle 19c sec_case_sensitive_logon参数问题”,在日常操作中,相信很多人在怎么解决oracle 19c sec_case_sensitive_lo...
    99+
    2024-04-02
  • Docker运行Nacos容器自动退出问题的解决方法
    Dokcer运行Nacos容器自动退出问题 参考博文 学生党,租的云服务器,2核2G。使用Docker运行Nacos容器的时候发现总是自动退出。Nacos日志里面没有明显的报错信息。...
    99+
    2024-04-02
  • php url 参数中文乱码问题怎么解决
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php url 参数中文乱码问题怎么解决?PHP解决URL中文GBK乱码问题的两种方法一般情况下对URL进行UrlEncode 处理 , urlencode(),ur...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作