使用arthas生成java程序cpu火焰图
【摘要】 环境准备需要有一个运行的java程序,如果你已经有了运行中的java程序,请跳过这一节,示例,我启动自制的kafka镜像docker run ttbb/kafka:mate 找到java程序的pidps -ef或者jps均可,其中jps需要安装jdk 安装arthaswget https://github.com/alibaba/arthas/releases/download/artha...
环境准备
需要有一个运行的java程序,如果你已经有了运行中的java程序,请跳过这一节,示例,我启动自制的kafka镜像
docker run ttbb/kafka:mate
找到java程序的pid
ps -ef
或者jps
均可,其中jps
需要安装jdk
安装arthas
wget https://github.com/alibaba/arthas/releases/download/arthas-all-3.5.4/arthas-bin.zip
mkdir -p arthas
unzip arthas-bin.zip -d arthas
使用arthas连接到目标程序
开始profiler
profiler start
如果出现Perf events unavailable. See stderr of the target process.
如图所示
需要在docker所在虚拟机上执行如下命令
echo 1 > /proc/sys/kernel/perf_event_paranoid
echo 0 > /proc/sys/kernel/kptr_restrict
如果是mac用户
docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh
执行上述命令进入docker所在的虚拟机操作即可
注意,在部分docker版本中,有可能还无法进行profiler采集,您可能需要以特权方式启动容器,不过,为了定位性能问题,这总是值得付出的,不是吗?
等待profiler一段时间
一般等待一分钟即可
结束profiler
profiler stop
结束
Congratulations,完成了火焰图的输出,现在你可以使用火焰图来分析执行时间较长的方法啦
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)