【鲲鹏 DevKit黑科技揭秘】│如何实现全链路系统问题90%精准诊断?
摘要:DevKit系统诊断工具是鲲鹏性能分析工具的子工具之一,能够针对内存、网络、存储等常见故障和异常,提供精准定位和诊断能力,帮助用户识别出源代码中的问题点,提升程序的可靠性,故障定位准确率高达90%。
你的电脑是不是很久没关机了?晚上下班不再关闭所有应用,合上笔记本就离开,第二天输入密码继续干活,不必再逐一查找处理了一半的文档和网页,长此以往,你是不是发现电脑越来越慢,闪退、反应迟钝,甚至忽然卡住、蓝屏?
其中很重要的因素,是因为长期频繁的读取新文件而不释放,会导致内存中缓存数据越来越多,当内存使用饱和之后,系统会将内存中的数据交换到硬盘中,此时如果要使用到这部分已经交换到硬盘上的数据,那么系统首先要把内存中最久远、没有使用的数据再做一次到硬盘的交换,腾出空间之后,才能把硬盘中需要使用的数据加载到内存,如此复杂的流程,运行速度当然会变慢。
上述问题在服务器中同样存在,内存作为计算机/服务器的重要部件,帮助CPU通过总线寻址实现对其他部件的读写操作,内存故障常常导致系统整体性能下降、运行故障、甚至宕机。比如程序在申请内存后,如果不及时释放已申请的内存空间,频繁累积就会形成内存泄露,导致内存被占光,触发OOM(Out of Memory)。内存越界会带来数据读写错误的风险,如果读取了不属于自己的数据会造成程序崩溃,将数据写入其他程序则会造成不可预料的后果。除了内存问题,开发人员还会经常面临网络IO故障和存储问题,比如系统配置错误,会导致网络不通;系统处理数据包不及时,会导致丢包;另外,由于存储IO协议栈很长(涉及文件系统、块、设备等多层次的读写和映射),遇到慢盘等问题时很难定位具体是哪一层造成的访问变慢。
面对上述问题,我们应该如何定位和修复呢?当前业界有各种诊断工具,针对不同问题进行诊断,然而这些工具通常操作比较复杂、学习成本高、定位时间长,找到问题点之后,也无法针对具体问题给出建议快速排除故障。开发者亟需一款操作简便、定位精准的系统诊断工具来解决开发过程中经常遇到的“老大难”问题。
DevKit系统诊断工具是鲲鹏性能分析工具的子工具之一,能够针对内存、网络、存储等常见故障和异常,提供精准定位和诊断能力,帮助用户识别出源代码中的问题点,提升程序的可靠性,故障定位准确率高达90%。

Figure 1 功能全景图
内存诊断——快速识别内存泄漏和访问越界点
通过内存诊断能力,帮助用户识别应用程序中存在的内存使用的问题点,提升程序的可靠性,具体包括:内存泄漏诊断、内存越界诊断。

Figure 2 内存泄漏点及其调用关系
支持分析应用程序中存在的内存泄漏点,包括:内存未释放、内存异常释放等,得到具体的泄漏信息,并以调用树的形式展示出来。

Figure 3 泄漏点源代码
支持关联到内存泄漏点的源代码,精确定位到泄漏点所在的代码行。

Figure 4 内存消耗信息
支持跟踪应用程序运行期间系统层、应用层(调用内存申请函数)、分配器层的内存消耗情况,支持展示整个过程的汇总数据和时序数据。用户通过该信息可以了解应用程序在整个运行期间的内存变化情况,帮助定位未发现泄漏点但内存一直增加的问题。

Figure 5 OOM事件信息
监测系统OOM事件,分析发生OOM时的进程内存状态、系统内存状态和调用栈信息。

Figure 6 内存访问越界信息
支持分析应用程序中存在的内存越界访问点,给出越界访问类型和内存访问信息,并支持关联出调用栈和源码。
网络IO诊断——识别网络最大能力、诊断丢包点
压测网络,获得网络最大能力,为网络IO性能优化提供基础参考数据;诊断网络,定位网络疑难问题,解决因网络配置和异常而导致的网络IO性能问题。具体包括:网络拨测、丢包诊断、网络抓包、系统负载监控。

Figure 7 连通性拨测结果
连通性拨测,基于ICMP协议测试网络连通性和时延,并根据网络KPI服务等级评估网络质量。针对网络不通的情况,给出排查建议。

Figure 8 TCP/UDP拨测结果
TCP/UCD拨测,基于TCP协议测试网络带宽和重传,基于UDP协议测试网络丢包和抖动,并根据网络KPI服务等级评估网络质量。针对测试失败的情况,给出排查建议。

Figure 9 丢包信息及其排查建议
诊断网络丢包点,定位网络丢包根因,给出修复建议。

Figure 10 网络抓包结果
支持网络抓包,辅助网络拨测和丢包诊断,根据抓取的网络消息包定位网络异常根因。
支持在诊断期间监控系统负载,包括:CPU、内存、网络IO、软硬件中断等,以此了解在网络拨测或发生网络丢包时,是否存在系统资源不足。
存储IO诊断——识别存储最大能力
由于存储设备在不同的业务场景下性能表现差异很大,例如:OLTP数据库每次IO是小块随机的,而OLAP数据库每次IO是大块顺序的,在相同的存储配置下,能够达到最大性能是相差很大的;如何识别,在不同业务场景下,存储IO能够达到的最大性能?
针对这个问题,DevKit系统诊断工具在2021年底将推出存储IO诊断功能,该功能能够按照一定业务的存储测试模型压测存储设备或文件,获取反映存储IO性能的吞吐量、IOPS、时延等指标,得到存储设备的最大能力,并以此评估存储能力,为存储IO性能优化提供基础参考数据。

Figure 11 存储IO压测结果
鲲鹏开发套件DevKit是面向开发者研发全作业流程的一站式开发套件,从2019年推出至今,提供了覆盖代码开发、迁移、编译、测试、调优、诊断等研发全作业流程的工具集,助力开发者极简开发。为了便于广大开发者们更加真实的体验、使用上述功能,DevKit还提供远程实验室,一站式预装DevKit开发环境,申请即可免费试用。
扫描免费申请试用
此外,想要了解更多关于DevKit的强大的功能,欢迎各位开发者访问DevKit专区。
【鲲鹏 DevKit黑科技揭秘】│如何实现全链路系统问题90%精准诊断?的更多相关文章
- MTSC2019-腾讯WeTest独家揭秘移动游戏测试和质量保障 QA 黑科技
WeTest 导读 TesterHome 联合腾讯 WeTest 出品 MTSC2019 重磅游戏测试 Topic ,首次公开揭秘腾讯亿级用户游戏背后的质量保障 QA 黑科技. 2019 年,中国游戏 ...
- 【转载】史上最全:TensorFlow 好玩的技术、应用和你不知道的黑科技
[导读]TensorFlow 在 2015 年年底一出现就受到了极大的关注,经过一年多的发展,已经成为了在机器学习.深度学习项目中最受欢迎的框架之一.自发布以来,TensorFlow 不断在完善并增加 ...
- [转帖]新iPhone的黑科技:UWB技术揭秘
新iPhone的黑科技:UWB技术揭秘 http://blog.nsfocus.net/iphone-black-technology-uwb-technology-revealed/ 阅读: ...
- ACM: FZU 2105 Digits Count - 位运算的线段树【黑科技福利】
FZU 2105 Digits Count Time Limit:10000MS Memory Limit:262144KB 64bit IO Format:%I64d & ...
- [自己动手玩黑科技] 1、小黑科技——如何将普通的家电改造成可以与手机App联动的“智能硬件”
NOW, 步 将此黑科技传授予你~ 一.普通家电控制电路板分析 普通家电,其人机接口一般由按键和指示灯组成(高端的会稍微复杂,这里不考虑) 这样交互过程,其实就是:由当前指示灯信息,按照操作流程按相应 ...
- 无人零售的黑科技:RFID技术
无人零售的黑科技:RFID技术说起最近的热门话题,“无人零售商店”当属其一.自去年底,亚马逊推出第一家无人实体超市Amazon Go,到阿里.京东.大润发等各大企业纷纷加入,无人商店被推上了风口浪尖. ...
- 黑科技!仅需 3 行代码,就能将 Gitter 集成到个人网站中,实现一个 IM 即时通讯聊天室功能?
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- Java黑科技之源:JVMTI完全解读
Java生态中有一些非常规的技术,它们能达到一些特别的效果.这些技术的实现原理不去深究的话一般并不是广为人知.这种技术通常被称为黑科技.而这些黑科技中的绝大部分底层都是通过JVMTI实现的. 形象地说 ...
- 一文带你了解 HTTP 黑科技
这是 HTTP 系列的第三篇文章,此篇文章为 HTTP 的进阶文章. 在前面两篇文章中我们讲述了 HTTP 的入门,HTTP 所有常用标头的概述,这篇文章我们来聊一下 HTTP 的一些 黑科技. HT ...
- “体检医生”黑科技|让AI开发更精准,ModelArts更新模型诊断功能
摘要:华为云AI开发平台ModelArts黑科技加持AI研发,让模型开发更高效.更简单,降低AI在行业的落地门槛.全面的可视化评估以及智能诊断功能,使得开发者可以直观了解模型各方面性能,从而进行针对性 ...
随机推荐
- idea的mybatis插件free mybatis plugin(或 Free MyBatis Tool),很好用
为大家推荐一个idea的mybatis插件----free mybatis plugin(或 Free MyBatis Tool),很好用(个人觉得free mybatis plugin更好用一点,可 ...
- 发现AI自我意识:从理解到思维
广义"理解"已经实现 在最新的人工智能系统中,我们经常可以观察到一种类似"理解"的能力.这种广义的"理解"能力,主要建立在两个基础之上:海量 ...
- iNeuOS工业互联网操作系统,高效采集数据配置与应用
1. 概述 2. 通讯原理 3. 参数配置 1. 概述 某生产企业世界500强的集团能源管控平台项目建设,通过专线网络实现异地厂区数据集成,每个终端能源仪表都有IP地址,总共有1000多台能源表 ...
- 10个PPT制作实用小技巧
当制作PPT时,您可以使用一些实用的小技巧来提升演示效果和工作效率.以下是10个PPT制作实用小技巧的详细描述: 第一.选择合适的模板 选择合适的PPT模板非常重要,因为模板可以决定整个演示的风格和视 ...
- 从根上理解elasticsearch(lucene)查询原理(1)-lucece查询逻辑介绍
大家好,我是蓝胖子,最近在做一些elasticsearch 慢查询优化的事情,通常用分析elasticsearch 慢查询的时候可以通过profile api 去分析,分析结果显示的底层lucene在 ...
- 常见速率协议的CDR带宽情况
100G PAM4 4MHZ 802.3/OIF-CEI 50G PAM4 4MHZ 802.3/OIF-CEI 28G PAM4 4MHZ 802.3/OIF-CEI 28G PAM4 4MHZ 8 ...
- ConcurrentModificationException日志关键字报警引发的思考
本文将记录和分析日志中的ConcurrentModificationException关键字报警,还有一些我的思考,希望对大家有帮助. 一.背景 近期,在日常的日志关键字报警分析时,发现我负责的一个电 ...
- 加速计算,为何会成为 AI 时代的计算力“新宠” 审核中
随着科技的发展,处理大量数据和进行复杂计算的需求越来越高,人工智能.大数据和物联网等领域更是如此,传统的计算方式已经无法满足这些需求.因此,加速计算作为一种现代计算方式,成了必要的手段.加速计算具有前 ...
- Sql整理
1:数据库 数据库是以某种有组织的方式存储的数据集合. 保存有组织数据的容器,通常是一个文件或者一组文件. SQL 是Structured Query Language (结构化查询语言)的缩写. 2 ...
- 【Datahub系列教程】Datahub入门必学——DatahubCLI之Docker命令详解
大家好,我是独孤风,今天的元数据管理平台Datahub的系列教程,我们来聊一下Datahub CLI.也就是Datahub的客户端. 我们在安装和使用Datahub 的过程中遇到了很多问题. 如何安装 ...