一种数据库OS层性能监控方法、介质及设备与流程
本发明涉及数据库运维监控,特别是涉及一种数据库os层性能监控方法、介质及设备。
背景技术:
1、现有数据库性能监控技术主要分为两类,第一类是数据库内部监控,通过查询数据库动态性能视图获取会话级别的等待事件、结构化查询语言执行统计、连接数等指标,例如mysql的performance_schema、postgresql的pg_stat_activity视图。第二类是操作系统层监控,通过系统工具查看服务器的中央处理器、内存、输入输出、网络等资源使用情况,常用的系统工具包括iostat、top、sar和strace等。
2、在实际运维中,数据库管理员通常将这两类数据人工对比分析。例如,当数据库出现缓慢查询时,数据库管理员先在数据库内部查看等待事件,然后切换到操作系统用iostat查看输入输出请求队列长度和硬盘响应时间,再用top查看数据库进程的中央处理器占用。
3、但数据库内部监控与操作系统监控之间缺乏关联机制。数据库管理员需要从不同工具中手动对比数据,各工具独立输出、时间轴不同步,一次排障平均耗时超过1小时,且手动比对过程易遗漏关联线索、难以复现完整因果链。且数据库内部视图无法提供操作系统层的原因分析。例如,当数据库产生大量硬盘读写时,数据库只能显示db file sequentialread等待事件,无法告知是哪个硬盘分区、读写延迟多少毫秒、输入输出队列有多长。同时,直接在操作系统层采集全部进程的操作系统事件会产生海量数据,一台64核服务器每秒可能产生数十万级事件,对存储和分析带来巨大压力。以及,现有集中式数据库监控方案通常与数据库类型强绑定,需为不同数据库分别部署或配置采集端,数据中心中数据库种类越多,需要维护的监控系统越多。
4、因此,如何在不侵入数据库进程、不依赖数据库版本的前提下,实现跨数据库类型的操作系统层性能统一采集与语义对齐成为亟待解决的问题。
技术实现思路
1、针对上述技术问题,本发明采用的技术方案为一种数据库os层性能监控方法,该数据库os层性能监控方法包括如下步骤:
2、s1,在目标服务器的操作系统内核层部署探针系统,其中,操作系统内核层对应若干个内核层级,探针系统包含若干个探针组,各探针组挂载于不同的内核层级。
3、s2,识别目标服务器中的数据库进程,获取数据库进程的第一进程标识和数据库进程所属的数据库类型,并将第一进程标识写入预设的过滤映射表。
4、s3,通过各探针组采集对应内核层级产生的操作系统事件,其中,每个操作系统事件至少携带触发该操作系统事件的进程的第二进程标识。
5、s4,各探针组在事件触发时查询过滤映射表,若当前操作系统事件携带的第二进程标识未命中过滤映射表,则在封装与输出之前丢弃当前操作系统事件,若命中过滤映射表,则将当前操作系统事件按照预设事件结构体封装后通过单一的预设输出通道向用户态程序发送。
6、s5,根据数据库类型,对用户态程序接收到的操作系统事件进行聚合处理,得到监控指标,其中,监控指标具有数据库类型对应的数据库语义。
7、本发明还提供了一种非瞬时性计算机可读存储介质,非瞬时性计算机可读存储介质中存储有至少一条指令或至少一段程序,至少一条指令或至少一段程序由处理器加载并执行以实现上述的数据库os层性能监控方法。
8、本发明还提供了一种电子设备,包括处理器和上述的非瞬时性计算机可读存储介质。
9、本发明至少具有以下有益效果:通过在操作系统内核层的若干个内核层级分别挂载探针组,使输入输出、网络、中央处理器调度、文件系统、内存管理五个维度的操作系统事件均被纳入采集范围,避免了单一维度采集无法完整刻画数据库性能问题的缺陷,实现了多维度操作系统层事件的同源采集;通过在采集之前先识别数据库进程并将其进程标识写入过滤映射表,由各探针组在事件触发时查询该映射表并在封装与输出之前丢弃未命中的事件,使非数据库进程产生的事件在内核态即被终止,不进入后续的封装、通道写入与用户态读取环节,解决了全量采集数据量不可控、有效事件被无关噪声淹没的问题,提升了采集数据的信噪比;通过令各探针组输出的事件均采用统一的事件结构体封装并共用同一输出通道,使不同内核层级产生的异构事件在离开内核时即具备统一的字段布局,解决了多来源事件需分别解析的问题;通过按数据库类型对接收到的操作系统事件进行聚合,使聚合结果携带与具体数据库相对应的语义,解决了同类操作系统事件在不同数据库中含义不一致的问题,提升了监控指标的跨数据库可比性与可解释性。
1.一种数据库os层性能监控方法,其特征在于,所述方法包括如下步骤:
2.根据权利要求1所述的数据库os层性能监控方法,其特征在于,所述块设备层挂载有i/o探针组,所述i/o探针组用于采集每次i/o的延迟、扇区数、设备号;
3.根据权利要求1所述的数据库os层性能监控方法,其特征在于,s2包括如下步骤:
4.根据权利要求3所述的数据库os层性能监控方法,其特征在于,s23包括如下步骤:
5.根据权利要求1所述的数据库os层性能监控方法,其特征在于,所述预设输出通道为perf event array输出通道,所述预设事件结构体为struct os_event事件结构体,所述struct os_event事件结构体包括进程标识字段、纳秒级时间戳字段、事件类型字段和事件详情字段,所述纳秒级时间戳字段由各探针组调用同一内核时钟源的时间接口函数生成。
6.根据权利要求1所述的数据库os层性能监控方法,其特征在于,s4包括如下步骤:
7.根据权利要求1所述的数据库os层性能监控方法,其特征在于,所述数据库类型至少包括oracle数据库、mysql数据库、postgresql数据库和opengauss数据库。
8.根据权利要求1所述的数据库os层性能监控方法,其特征在于,s5包括如下步骤:
9.一种非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质中存储有至少一条指令或至少一段程序,其特征在于,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-8中任意一项所述的数据库os层性能监控方法。
10.一种电子设备,其特征在于,包括处理器和权利要求9中所述的非瞬时性计算机可读存储介质。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com