性能诊断-Monitor 7大新特性,助你效率起飞
你是否还在苦苦思索如何观察集群所有实例CPU的实时负载?
你是否在烦恼系统卡顿堵塞的原因是什么?
你是否为查看慢SQL束手无策?
你是否在为无法监控数据库发愁?
你是否希望有工具能够快速分析锁竞争?
为了解决性能问题,太多烦恼了...
能为您排忧解难是Monitor最快乐的事~
这不,Monitor又一次性发布7大新特性,帮您快速定位性能根因,释放焦躁与压力!
适用版本
特性简介
Monitor 作为产品性能优化的一个主要工具,可以提高产品可用性,其效率就是效益。
在V6.0.1版本中,Monitor 围绕性能定位效率问题,进一步提供以下功能:集群TOP监控、火焰图新增调用耗时和锁火焰图、组件性能检测、日志组件检测、告警增强、SQL实时快照、集成第三方工具PMM监控数据库。
特性详情
接下来小编将以新特性为纲,结合使用示例带你一步步上手。
1. 集群TOP监控新特性
特性价值:批量监控集群所有实例CPU实时使用情况。
操作入口:【集群监控】->【TOP监控】。
使用示例:在系统卡顿时,观察集群所有实例CPU负载状况,定位出CPU用量较高的实例,进一步分析是什么线程引起CPU使用异常。
集群TOP监控图
如上图,左侧为集群所有实例列表,每个实例的TOP监控信息分为以下3个部分:
宿主机信息:显示宿主机的CPU数量、CPU最近平均负载情况、CPU用量等。
JAVA线程实时监控:显示CPU使用TOP5的线程,包括线程内存、CPU、任务类型等。
JAVA进程快照:显示最近5次JVM进程内存、CPU用量详情。
通过上图,我们可以很快发现集群所有节点当前状态CPU用量并不高,但过去一段时间CPU平均负载比较高,基本断定应该会卡在阻塞等待上,结合下面介绍的特性还可以进一步分析。
2. 调用耗时火焰图新特性
特性价值:用于生成除CPU耗时外包含IO耗时、网络耗时的火焰图,用于分析由于IO、网络阻塞导致的性能下降问题,可以更全面地分析系统性能瓶颈,帮助开发人员和系统管理员理解在CPU等待时发生的事情,以便更好地优化性能。
详细概念请参考文档:https://www.brendangregg.com/FlameGraphs/offcpuflamegraphs.html
操作入口:【性能治理】->【火焰图】,生成火焰图类型选择【调用耗时】。
使用示例:结合上面步骤,通过“调用耗时”火焰图继续分析服务实例阻塞等待情况。
生成“调用耗时”火焰图
如上图生成生成“调用耗时”火焰图,结果如下图所示:
调用耗时火焰图
通过“调用耗时”火焰图,很直观地看到线程阻塞主要发生在与PG数据库通信网络的等待上,这说明执行的SQL较慢,只分析网络等待还不全面,应该继续分析是否有锁阻塞。
3. Lock火焰图新特性
特性价值:Lock火焰图用来更深入地分析锁的使用情况。Lock火焰图显示哪些线程或进程在使用锁,哪些锁被频繁竞争,以及锁的等待时间。建议优先通过“调用耗时”火焰图分析确定存在锁竞争或锁等待再生成“Lock”火焰图深入分析。
操作入口:【性能治理】->【火焰图】,生成火焰图类型选择“Lock”。
使用示例:结合上面步骤,使用“锁火焰图”继续分析锁情况,同样先生成“锁火焰图”。
生成火焰图
火焰图
锁火焰图直观反应,3个线程存在锁竞争。进一步分析发下,代码SetQueue中存在对ReentrantLock的竞争使用,根据分析结果可以针对锁竞争进一步代码优化。
但是锁竞争整体时间占用较低1%左右,主要还是卡在执行SQL上。目前定位到SQL层面的问题,针对SQL做进一步分析。
4. 数据库SQL实时快照新特性
特性价值:一键排查集群中所有数据中心的慢SQL,支持下载,提高定位业务中慢SQL的效率,支持MySQL、Postgresql、Oracle数据库。
操作入口:【性能治理】->【SQL实时快照】。
使用示例:结合上面步骤使用SQL实时快照继续分析SQL执行情况,查询执行大于10秒的所有SQL。
SQL实时快照图
如上图,可以同时查询多个数据库正在执行的慢SQL,SQL执行非常耗时,至此我们可以明确,性能慢的主要原因是这些慢SQL导致的,相比分别去每个数据库主机排查,效率提升明显。
在SQL实时快照查询中,每个SQL主要包含2个部分。
标题:包含数据库schema和其所属的主机IP以及发起调用的TraceID。
详情:包括SQL在数据库中已执行时长、数据库类型,以及SQL对应的原生状态类型和状态值。状态显示具体数据库原生名称,分别如下:
MySQL显示为status及对应的值,如staus:sending data
Postgresql显示为wait_event及对应的值,如wait_event:buffer_io
Oracle显示为event及对应的值,如event:row lock contention
分析到这里是不是感觉还是不透彻,SQL执行这么慢,数据库到底处于一种什么状态?我们继续深入分析。
5. 集成第三方监控工具PMM新特性
PMM(Percona Monitoring and Managemen)提供非常友好的监控分析页面,尤其数据库监控功能可以帮助数据库管理员实时监控数据库性能、执行查询分析、诊断问题和优化性能。
V6.0.1 Monitor配置集成PMM监控功能页面,PMM服务端和Agent需要运维人员自己安装,安装方法请参考官网说明。
特性价值:支持可视化界面快速查看数据库CPU、IO、内存、网络等指标;支持查看SQL的负载、平均耗时、QPS等状态;支持查看SQL执行计划,定位慢SQL根因等,完善数控层定位问题能力,提高系统故障排除效率。
操作入口:【第三方工具】->【PMM】。
使用示例:结合上面步骤使用PMM继续深入分析数据库指标,参考入口打开PMM首页。
PMM主页图
如上图,主页主要显示硬件指标详情,便于快速掌握数据库主机的性能。
从监控图示例看,最近15分钟CPU、网络、磁盘都在持续增加,但是可用内存持续下降并且一度接近10%以下,因此从上面监控图可以看出数据库主机内存资源严重不足。我们继续分析数据库自身指标,排查原因,打开数据库实例监控面板,操作方式及监控指标如下图:
打开数据库实例操作方式图
最大事务耗时监控图
最大事务持续增加达到将近13秒,进一步打开SQL负载分析页面,如下图:
SQL负载及平均耗时图
从监控图可以看到,第一条SQL最近15分钟平均耗时接近4秒,查询时间就用了将近3秒,进一步可以通过“Plan”页签查看执行计划,以深入分析根因。
分析到这一步,性能根因已经很明确,大量执行一个平均耗时4秒的慢SQL,使数据库主机CPU接近60%,内存使用接近90%产生严重的性能问题,进而导致服务阻塞严重,同时验证了前面通过“调用耗时”火焰图分析的结论,大部分时间用在网络等待。
6. 基础组件原子性检测新特性
特性价值:V5.0版本组件检测是多个方法一起检测耗时,不能精准反应被检测组件每个方法的具体耗时,V6.0.1增强为对每个方法进行原子级性能检测,可以快速精准检测每个方法级性能指标。
操作入口:【基础组件】->【组件检测】。
使用示例:系统卡顿时,使用“组件检测”多次检测,根据检测结果分析有无性能问题。
如上述分析数据库阻塞的步骤,通过“组件检测”,我们也可以快速发现问题。如下图:
新版组件检测效果图
通过检测结果图看到,数据库走连接池模式获取链接超慢,说明数据库性能已经很差。
7. 告警增强新特性
特性价值:V6.0.1新增微信、钉钉、云之家告警渠道,支持配置其他渠道;支持配置告警后响应动作,包括静默、暂停服务、重启服务。
操作入口:【告警管理】->【告警策略】。
使用示例:“JVM发生OOM次数”>=1,云之家发告警,停止服务,效果如下:
配置告警策略图
云之家通知告警结果图
注意事项
1. 告警策略支持WebHook方式配置通知目标,常用的WebHook地址获取方式帮助文档如下:
企业微信Webhook地址查看帮助文档:https://open.work.weixin.qq.com/help2/pc/14931#%E4%BA%94%E3%80%81%E7%BE%A4%E6%9C%BA%E5%99%A8%E4%BA%BAWebhook%E5%9C%B0%E5%9D%80
钉钉Webhook地址查看帮助文档:https://open.dingtalk.com/document/orgapp/assign-a-webhook-url-to-an-internal-chatbot
云之家Webhook地址查看帮文档:https://open.yunzhijia.com/opendocs/docs.html#/tutorial/index/robot?id=%e5%88%9b%e5%bb%ba%e9%80%9a%e7%9f%a5%e5%9e%8b%e6%9c%ba%e5%99%a8%e4%ba%ba
2. SQL实时快照页面,可能显示数据库连接异常或权限不足。我们可以在【系统配置】->【监控库配置】菜单打开配置页面,根据提示修改相关的参数,尤其注意不同数据库需要不同的账号和权限。配置页面如下图:
监控库配置图
3. PMM使用的前置条件及配置:
确定已先安装PMM服务,数据库主机正确安装配置客户端。
由于PMM控制台页面禁止跨域访问,需要针对不同场景配置NG代理PMM服务,配置方案如图:
配置方案
nginx.conf配置示例:
server { listen 80; server_name localhost; #PMM反向代理配置 location /graph { #PMM地址 proxy_pass https://xxx.xxx.xxx.xxx/graph/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } #Monitor反向代理配置 location /monitor/eye/ { #Monitor地址 proxy_pass http://xxx.xxx.xxx.xxx:8080/ierp/monitor/eye/; } }
在Monitor中,【系统配置】->【参数配置】页面配置PMM地址、账号、密码用于在Monitor自动登录打开PMM页面。配置的地址为NG地址,如NG地址为172.19.110.33,配置结果如下图:
相关链接
Monitor新特性演示课程:
https://vip.kingdee.com/link/s/l0XV1
划重点
V6.0.1版本中,Monitor 围绕性能定位效率问题,进一步提供相关特性。
性能诊断新增特性包括:集群TOP监控、调用耗时火焰图、锁火焰图、组件检测支持方法级性能检测、集成PMM监控。
告警新增特性包括:支持云之家、钉钉、微信及自定义配置其他渠道;告警行为支持静默、暂停服务、停止服务、重启服务;告警时间范围定义。
#往期推荐#
更多精彩内容,“码”上了解!↓
性能诊断-Monitor 7大新特性,助你效率起飞
本文2024-09-23 01:14:11发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-144651.html
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf