使用async-profiler简单分析zeebe 工作流引擎的性能
刚开始的时候直接使用的系统暴露的prometheus metrics,发现越高的版本反而性能越差,期间使用过了
perf
打算使用perf 生成火焰图的,但是因为符号缺失,只找到了占用较高的任务,详细的暂时没有取到
以前大概知道一个工具perf-map-agent
可以用来生成缺失的符号,但是只是不太好,发现了async-profiler
工具,使用方便,支持的版本都,同时也支持基于容器的部署模型,但是容器运行暂时有点问题,所以直接
使用虚拟机运行,配置的分片为1,副本也为1
使用async-profiler 获取指标
- 下载工具
参考github 项目https://github.com/jvm-profiling-tools/async-profiler - 命令
./profiler.sh -d 120 -o collapsed -f more8 `pid of java`
- 生成火焰图
使用FlameGraph/flamegraph
下载地址
https://github.com/brendangregg/FlameGraph
生成火焰图命令
./FlameGraph/flamegraph.pl more8 > flamegraph8.svg
- 效果
发现大部分的占用都是raft 的读
几个问题
- 实际看到磁盘写很大
从火焰图我们可以看出读取占用较多的时间,但是检测磁盘的话,我们发现磁盘写很大,可选的排查工具iostat
以及使用async-profiler
使用iostat
我们发现写是偶然的很大,基本都在20M左右,和我们实际看到的情况一致
使用async-profiler
可以使用tree 模式 ./profiler.sh -d 30 -t -o flat,tree -f zeebe-demo.txt pid of java
我们会发现有写,但是占用的cpu
时间并不高,如下:
- 分区与线程的关系
官方有一个介绍是关于分区数与线程的关系,一个分区占用2个线程,和我们看到的raft-server-raft-atomix-partition
任务一致
比如下边的为4个分区的,从界面看到大概有两类,后边再看看atomix 的原理(zeebe 状态维护的底层依赖)
目前的几个结论
- zeebe 目前版本还不太稳定
但是0.21.1 版本比以前的版本稳定 - zeebe 分区个数会严重影响系统性能
cpu 核数,磁盘io,以及集群规模都会都系统的响应有很大的影响,推荐部署使用ssd - exporter 对于系统有影响,但是并不大
在测试的过程中,为了简单exporter 的影响,删除了对于es exporter的配置,对于系统响应并不提大(通过prometheus metrics 查看) - 后边还是研究下atomix 的实现原理以及优化(zeebe 强依赖)
参考资料
一个简单的基于docker-compose 的基础环境https://github.com/rongfengliang/zeebe-debughttp-exporter-demo 实际运行结合场景
修改下配置
https://docs.zeebe.io/basics/partitions.html
https://github.com/jvm-profiling-tools/async-profiler
https://github.com/brendangregg/FlameGraph
https://github.com/atomix/atomix
https://github.com/Netflix/flamescope
使用async-profiler简单分析zeebe 工作流引擎的性能的更多相关文章
- Java三大主流开源工作流引擎技术分析
首先,这个评论是我从网上,书中,搜索和整理出来的,也许有技术点上的错误点,也许理解没那么深入.但是我是秉着学习的态度加以评论,学习,希望对大家有用,进入正题! 三大主流工作流引擎:Shark,oswo ...
- zeebe 为微服务架构的工作流引擎
zeebe 是灵活.轻量的基于微服务架构的工作流引擎 包含以下特性: 可视化的额工作流 审计日志以及历史 水平缩放 持久化&&容错 消息驱动 操作容易 语言无关 工作流基于标准bpmn ...
- 工作流引擎JFlow与activiti 对比分析(一)5种基本控制流模式的对比
为了更好的说明activiti 与jflow的两款工作流引擎的特点与区别,我们按照如下几个方面做一次全面的.客观的对比. 首先activiti是国外的一款开源的工作流程引擎,在国际上影响比较深远与广泛 ...
- Camunda工作流引擎简单入门
官网:https://camunda.com/ 官方文档:https://docs.camunda.org/get-started/spring-boot/project-setup/ 阅读新体验:h ...
- F2工作流引擎模型
工作流引擎(Workflow Engine ) [编辑] 工作流引擎概述 工作流引擎是指workflow(工作流)作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色.分工和条件的不同决定 ...
- Slickflow.NET 开源工作流引擎高级开发(三) -- 并行分支容器与会签工作流模式的组合
前言: 流程引擎的核心功能是负责解析流程定义XML和流转,业务环节的不断积累,让人们不断总结和抽象出一些模式,这些模式统称为工作流模式(Workflow Pattern).本文的重点就是介绍一种常见 ...
- 一个适合于.NET Core的超轻量级工作流引擎:Workflow-Core
一.关于Workflow-Core 近期工作上有一个工作流的开发需求,自己基于面向对象和职责链模式捣鼓了一套小框架,后来在github上发现一个轻量级的工作流引擎轮子:Workflow-Core,看完 ...
- Java工作流引擎结合可视化表单开发,10分钟完成一个业务流程发布
回忆以前工作流引擎的应用,感觉历历在目啊!当初公司接了一个项目关于政府单位公文流转的管理系统,一开始客户跟我画了十多张业务流程图.话说这十多张业务流程图,涉及的业务范围还蛮多,像用审批授权,开通流程, ...
- Activiti工作流学习笔记(四)——工作流引擎中责任链模式的建立与应用原理
原创/朱季谦 本文需要一定责任链模式的基础,主要分成三部分讲解: 一.简单理解责任链模式概念 二.Activiti工作流里责任链模式的建立 三.Activiti工作流里责任链模式的应用 一.简单理解责 ...
随机推荐
- USB鼠标抓包数据(转)
https://blog.csdn.net/zqixiao_09/article/details/53056854
- sierpinski垫片(3D)[误]
今天是因为可以用py而高兴的一天. 昨天老板淡淡地回了一句,sierpinski地毯画得挺好的. 我思考了五秒钟之后,想起来作业其实是sierpinski垫片. 三角垫片比地毯难做多了. 因为 ...
- 5种IO模型、阻塞IO和非阻塞IO、同步IO和异步IO
POSIX 同步IO.异步IO.阻塞IO.非阻塞IO,这几个词常见于各种各样的与网络相关的文章之中,往往不同上下文中它们的意思是不一样的,以致于我在很长一段时间对此感到困惑,所以想写一篇文章整理一下. ...
- Mysql设置binlog过期时间并自动删除
问题: Mysql数据库由于业务原因,数据量增长迅速,binlog日志会增加较多,占用大部分磁盘空间. 解决方案: 出于节约空间考虑,可进行删除多余binary日志,并设置定期删除操作. .查看bin ...
- 在Edge Chromium中启用简体中文界面
Edge Chromium用了一阵子了,整体上还算比较好用的,由于可以直接使用chrome的扩展,基本上体验和chrome差不多,就是界面上不支持中文有点小不爽. 在Edge Chrome更新到77后 ...
- Prism——Window 必须是树的根目录。不能将 Window 添加为 Visual 的子目录。
这个错误就是作为Region的view添加时选成了界面,正确的应在添加时选择用户控件. 解决方法: 这俩处的Window改为UserControl即可.
- [转载].NET ASP.NET 中web窗体(.aspx)利用ajax实现局部刷新
之前开发的一套系统中用到了大量的 checkboxList 控件,但是每次选定之后都会刷新整个页面,用户体验很差,百度了之后查到这篇文章,尝试了一下可以实现,所以转载了过来,记录一下,也给其他有相同困 ...
- Python - MySQL - mysql-connector -第二十四天
序言 搭建MySQL环境MySQL Server. 请参考:https://blog.csdn.net/m0_37788308/article/details/79965378 或者 https:// ...
- python数据分析&挖掘,机器学习环境配置
目录 一.什么是数据分析 1.这里引用网上的定义: 2.数据分析发展与组成 3.特点 二.python数据分析环境及各类常用分析包配置 1.处理的数据类型 2.为什么选择python 三.python ...
- [Tomcat源码分析] Eclipse中搭建Apache Tomcat源码调试环境
网上很多文章都推荐使用Ant下载编译,但本地实践中屡屡失败,无法下载. 后来参考 https://blog.csdn.net/xiongyouqiang/article/details/7894107 ...