首页 > 其他分享 >grafana jpprof 使用的一些问题

grafana jpprof 使用的一些问题

时间:2022-11-04 18:02:12浏览次数:95  
标签:github jdk grafana jpprof https 使用 com

容器运行版本问题

  • 如下图

 

 


可以看出使用的也是基于libasyncProfiler 所以容器运行环境本地比较重要,parca java 解决方案也是使用了类似的技术(alpine 镜像就比较费事了,推荐使用其他java 技基础镜像,比如 amazoncorretto:11.0.17)

容器运行cap能力权限问题

因为需要perf_event 但是默认容器运行的时候是没有开启的,所以需要特殊处理下,主要是需要添加linux capability 能力,docker 可以参考如下 (开启所有能力)

 
docker run -d  --cap-add all dalongrong/jpprof-springboot-learning

同时还需要配置一些内核参数

sh -c " echo 0 > /proc/sys/kernel/kptr_restrict"
sh -c " echo 1 > /proc/sys/kernel/perf_event_paranoid"

jdk 版本问题

最小jdk 版本是jdk 11,jdk 8 是不能运行的,从使用到的技术来说jdk8 理论上也是可以的,只是目前grafana 使用的jdk 11 构建编写的,我们可以仿照自己调整下(内部还使用了jfr)

windows 支持

从当前来说是不支持Windows的,主要是linux 以及mac 系统

实际对于性能优化辅助的效果

因为java jvm jit 的的原因,实际上这类语言基于此中模式进行调用链以及性能分析并不是特别的好,会有符号表以及jit 的因素造成数据不是很准确,如果需要准备的处理对于jvm 我们需要添加一些参数,同时当前jpprof 只支持cpuprofiling 具体可以参考async-profiler 项目

参考调用链

基于spring boot 的

 

 

说明

下边包含了一个spring boot 同时构建容器的示例可以参考

参考资料

https://github.com/parca-dev/parca-demo/tree/main/java
https://github.com/grafana/JPProf
https://github.com/jvm-profiling-tools/async-profiler
https://github.com/rongfengliang/jpprof-springboot-learning
https://github.com/rongfengliang/php-nginx-docker

标签:github,jdk,grafana,jpprof,https,使用,com
From: https://www.cnblogs.com/rongfengliang/p/16858632.html

相关文章

  • grafana phlare 试用
    主要是简单试用下grafanaphlare环境准备docker-compose文件version:'3'services:phlare:image:grafana/phlare:latestports:......
  • grafana jpprof jdk 8 支持探索
    问题运行问题java.lang.NoSuchMethodError:java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;atjpprof.one.jfr.JfrReader.<init>(JfrReader.ja......
  • php注解使用示例
    今天看到php注解的介绍文章很感兴趣,动手实际试了试挺好玩,写这篇文章记录下php从8开始支持原生注解功能了,我们可以写个小的例子看看注解怎么玩。 先确定我们的任务目标......
  • 野花--使用开发者工具查看及调试hover等状态的样式
    第一种:选中需要检查hover状态的元素,在开发者工具中的forceelementstate中强制选择响应的状态,就会显示响应的css样式.但是这种调试依然无法直接在页面上实时看到hove......
  • Java学习笔记day4--Arrays工具类的基本使用
    packageday4_array;importjava.util.Arrays;publicclassArrayBool{publicstaticvoidmain(String[]args){//java.util.Arrays工具类.操作数组的......
  • 在 k8s(kubernetes)中使用 Loki 进行日志监控
    安装helm环境[root@hello~/yaml]#[root@hello~/yaml]#curlhttps://baltocdn.com/helm/signing.asc|sudoapt-keyadd-[root@hello~/yaml]#sudoapt-getinstallap......
  • Docker容器中使用GPU
    背景容器封装了应用程序的依赖项,以提供可重复和可靠的应用程序和服务执行,而无需整个虚拟机的开销。如果您曾经花了一天的时间为一个科学或深度学习应用程序提供一个包含大......
  • 在Kubernetes(k8s)中使用GPU
    介绍Kubernetes支持对节点上的AMD和NVIDIAGPU(图形处理单元)进行管理,目前处于实验状态。修改docker配置文件root@hello:~#cat/etc/docker/daemon.json{"default-r......
  • 使用多线程可能带来什么问题?
    并发编程的目的就是为了能提高程序的执行效率提高程序运行速度,但是并发编程并不总是能提高程序运行速度的,而且并发编程可能会遇到很多问题,比如:内存泄漏、上下文切换、死锁还......
  • Ansible 安装并简单使用
    Ansible简介Ansible是一款IT自动化工具。主要应用场景有配置系统、软件部署、持续发布及不停服平滑滚动更新的高级任务编排。Ansible本身非常简单易用,同时注重安全和可......