如何解决如何在 docker swarm 模式下转储 jvm memery?
我的springcloud应用运行在docker swarm模式下,最近发现内存使用不正常。我想用jmap之类的工具来dump堆,这样我就可以改变jvm的参数,解决问题。
我曾尝试使用一些工具,例如 arthas,但由于 pid 1 问题而失败。我们无法附加到 id 为 1-5 的进程。
如何知道堆的使用情况(eden、survivor 等)?
解决方法
我认为最简单的方法是进入容器的外壳并在那里安装必要的工具。在带有应用程序容器的节点上使用它来启动交互式会话:
docker exec -u root -it <container_name> sh
完成重新创建后停止容器并进行清理。
如果在某个时候您需要从容器中提取文件(例如转储),请从节点上的另一个控制台使用 docker cp
:
docker cp <container_name>:<path_in_container> <local_path>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。