[Docker Java 服务]Docker 容器中Java服务问题排查

这篇具有很好参考价值的文章主要介绍了[Docker Java 服务]Docker 容器中Java服务问题排查。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

排查工具 - Arthas

官方介绍

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。

安装

参考官方文档:https://arthas.aliyun.com/doc/install-detail.html

我的排查过程

设置Docker容器权限

这一步很重要,如果docker容器没有相应的权限,在执行Arthas的一些命令时会报错:
AsyncProfiler error: No access to perf events. Try --fdtransfer or --all-user option or ‘sysctl kernel.perf_event_paranoid=1’

设置方法

这个设置方法有很多,还和你启动容器的方式有关,可以自行百度,我的容器是通过docker-compose.yml进行配置并启动的,配置如下:

version: "3.7"

services:
  datain-backend:
    image: xxxx:version
    privileged: true
    ports:
      - 8080:8080

启动容器并获取容器ID

启动容器
docker-compose up -d

获取容器ID
docker ps

进入容器
docker exec -it 容器ID /bin/bash

下载Arthas

这个Arthas 是个Jar你可以根据官方文档的方法下载,也可以在其它地方下载好上传到宿主服务器,再通过挂载目录的方式将文件弄到docker容器,当然最简单的还是直接下载:
curl -O https://arthas.aliyun.com/arthas-boot.jar

启动

java -jar arthas-boot.jar

选择对应的Java 服务

启动后,会给你列出你容器中的java 服务,你可以输入对应的数字来选择

问题排查

  1. 可以通过生成火焰图来排查
# 在执行分析的时候最好对相应的接口进行压测一下,或者自己手动多调用一下,因为他是靠统计时间点的访问次数来分析的
## 启动打点
profiler start

## 过一会儿,停止
profiler stop


## 停止后会自动生成火焰图到你的容器根目录,是个html,你自己想办法弄到本地来,通过浏览器打开

● 火焰图分析:这个我建议可以去网上看看文章,很容易学会的

从下到上是方法入栈的顺序,你可以找到你要分析的方法,看看他的时间分布,横向的长短代表耗时比例

  1. 监听特定方法执行栈
# 使用trace命令, 监听com.xxx.server.XXXImpl类 的listTable方法
trace com.xxx.server.XXXImpl  listTable

结果分析:每一步都统计的耗时,根据耗时情况进行优化就好了文章来源地址https://www.toymoban.com/news/detail-707104.html

到了这里,关于[Docker Java 服务]Docker 容器中Java服务问题排查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker 容器入侵排查

    随着越来越多的应用程序运行在容器里,各种容器安全事件也随之发生,例如攻击者可以通过容器应用获取容器控制权,利用失陷容器进行内网横向,并进一步逃逸到宿主机甚至攻击K8s集群。 容器的运行环境是相对独立而纯粹,当容器遭受攻击时,急需对可疑的容器进行入侵

    2024年02月10日
    浏览(28)
  • docker的服务/容器缺少vim问题

    背景/问题: docker的服务/容器缺少vim问题 bash: vim: command not found 问题:文件下载失败 Err:1 http://security.debian.org/debian-security buster/updates InRelease Temporary failure resolving ‘security.debian.org’ Err:2 http://repo.mysql.com/apt/debian buster InRelease Temporary failure resolving ‘repo.mysql.com’ Err:3 http://deb.

    2024年02月13日
    浏览(28)
  • Docker 容器常见故障排查及处理

    原文链接:https://blog.csdn.net/qq_41958579/article/details/107927140 Docker是一种相对使用较简单的容器,我们可以通过以下几种方式获取信息: 1、通过docker run执行命令,或许返回信息 2、通过docker logs 去获取日志,做有针对性的筛选 3、通过systemctl status docker查看docker服务状态 4、通过

    2024年02月02日
    浏览(33)
  • docker 容器与主机端口 在容器中启动服务 多容器端口冲突问题

    容器内的端口等与主机的端口等是分离的,容器中的环境可理解为是虚拟的. 容器中使用的网络环境与主机保持一致: 示例: docker run -it --network host image:tag 其中: --network host表示容器中使用的端口 IP等都是主机上的。 容器中端口可以映射到主机端口,且多个不同的主机端口

    2024年02月16日
    浏览(30)
  • Docker 容器常见故障排查及处理,超好用,建议收藏

    Docker是一种相对使用较简单的容器,我们可以通过以下几种方式获取信息: 1、通过docker run执行命令,查看返回信息 2、通过docker logs 去获取日志,做有针对性的筛选 3、通过systemctl status docker查看docker服务状态 4、通过journalctl -u docker.service 查看日志 以下是整理的docker容器类

    2024年02月04日
    浏览(32)
  • java集成Docker-java实现远程镜像、容器创建,服务发布

           目前项目中需要实现水利机理模型的容器化部署,使用docker实现模型容器化部署操作,互相隔离,就是一个不错的方案。 实现docker远程连接、远程安全连接 构建镜像、加载镜像、删除镜像、拉取镜像、创建容器、启动容器、停止容器、删除容器。 执行模型运行命令

    2024年02月04日
    浏览(45)
  • 【Java】微服务——Docker容器部署(docker安装,docker配置镜像加速,DockerHub,docker基本操作,Dockerfile自定义镜像.Docker-Compose)

    微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。 在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题 1.1.1.应用部署的环境问题 大型项目组件较多,运

    2024年02月04日
    浏览(41)
  • Docker打包容器并跨服务器传输重建加载load镜像Unable to find image :latest问题解决 及 Docker在容器未启动的情况下如何修改容器中文件

        使用docker就是因为docker可以快速进行多服务器部署,所以需要对部署好的环境进行打包复制并快速在其它的服务器上进行重建。     其实使用起来非常简单,使用docker export从运行的容器中导出文件,,使用import命令生成镜像批量传至目标服务器然后在目标服务器上进行

    2024年04月17日
    浏览(35)
  • 排查docker无法启动问题

    查看Linux系统操作日志(最后200行就可以排查): tail -200f /var/log/messages  

    2024年02月13日
    浏览(20)
  • docker export,import后无法运行,如java命令找不到,运行后容器内编码有问题

    为什么用docker export呢,😔~由于客户环境太恶心了,测试一次更是麻烦,所以什么都得在本地调试完成,争取每次测试+上线一次通过才行,说多了都是泪。 由于踩坑几次了,每次都忘记,且每次网上找半天也难以发现问题,今日决定记录一笔。 在进行docker export导出镜像,然

    2024年02月15日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包