读写制造技术

技术编号:39597395 阅读:7 留言:0更新日期:2023-12-03 19:56
本发明专利技术实施例提供了一种读写

【技术实现步骤摘要】
读写IO监测方法、装置、设备及存储介质


[0001]本专利技术涉及互联网
,特别涉及一种读写
IO
监测方法

装置

设备及存储介质


技术介绍

[0002]在业务系统工作过程中如果出现
IO
使用率很高,
IO
响应时间很长等现象,就意味着操作系统出现了
IO
性能瓶颈,严重影响了业务系统的正常运行

上述瓶颈可能是由于两方面的因素导致,一是业务系统本身出现了性能问题,比如出现大量读写磁盘的进程,导致内核中
IO
调度的时间过长,从而导致
IO
的使用率很高

另一方面是由于磁盘本身出现问题,如磁盘老化导致
IO
读写耗时增加等

[0003]当前主要是通过使用用户态跟踪工具
Blktrace

IO
在块设备层的行为进行分析来确定
IO
性能瓶颈的出现原因,其中,
Blktrace
包括3个部分:
Blktrace、Blkparse、Btt
,方法包括:通过
Blktrace
根据用户输入的磁盘设备,以
CPU
核为对象,收集此磁盘设备上每个
IO
调度的情况,并将收集的结果保存在二进制文件中,而后通过
Blkparse
将上述所有二进制文件合并成一个对用户来说并不易读的文件,最后通过
Btt

Blkparse
生成的不易阅读的文件进行解析,生成
IO
时延分布图,以此分析
IO
性能瓶颈的出现原因

[0004]然而,由于
Blktrace
在获取
IO
栈信息时,其中间结果以不易读的文件形式出现,若想获取易读信息,需要
Blkparse

Btt
解析,因此上述方法只适用于一段时间内的
IO
监测,即
Blktrace
运行一段时间后停止,此时用
Bl kparse

Btt
对收集的二进制文件进行解析,但是
Blkparse

Btt
无法分析实时数据,因此无法实时对系统下的
IO
栈进行监测


技术实现思路

[0005]本专利技术实施例的目的在于提供一种读写
IO
监测方法

装置

设备及存储介质,解决现有的技术中,通过用户态跟踪工具
Blktrace

IO
在块设备层的行为进行分析来确定
IO
性能瓶颈时,用
Blkparse

Btt
对收集的二进制文件进行解析时,无法实现实时解析,进而导致无法实时对系统下的
IO
栈进行监测的问题,具体技术方案如下:
[0006]在本专利技术实施的第一方面,首先提供了一种读写
IO
监测方法,其特征在于,所述方法包括:
[0007]读取用户态中处于目标缓冲区的输入输出
IO
条目,其中,所述
IO
条目包括
IO
事件
、IO
事件进程号
、IO
事件时间戳
、IO
事件类型
、IO
事件序号;
[0008]根据所述
IO
事件时间戳获取所述
IO
事件序号相邻的
IO
条目间的第一时间;
[0009]将所述
IO
条目和所述第一时间写入数据库,以使服务端读取所述数据库数据并进行展示

[0010]可选的,所述读取用户态中处于目标缓冲区的输入输出
IO
条目之后,还包括:
[0011]按照所述
IO
事件类型和所述
IO
事件序号,将所述
IO
条目插入目标双向链表;
[0012]获取处于同一双向链表中相邻
IO
条目间的第二时间;
[0013]在检测到所述第二时间大于第一阈值的情况下,获取所述相邻
IO
条目中时间较早的
IO
条目的第一时间戳;
[0014]根据所述第一时间戳删除处于同一所述双向链表的第一
IO
条目

[0015]可选的,所述按照所述
IO
事件类型和所述
IO
事件序号,将所述
IO
条目插入目标双向链表,包括:
[0016]按照所述
IO
事件类型确定待插入的目标双向链表;
[0017]按照所述
IO
事件序号确定所述
IO
条目在所述目标双向链表中的位置

[0018]可选的,所述根据所述第一时间戳删除处于同一所述双向链表的第一
IO
条目,包括:
[0019]获取处于同一所述双向链表中
IO
条目的第二时间戳;
[0020]从所述第二时间戳中获取早于所述第一时间戳的第三时间戳;
[0021]删除处于同一所述双向链表的所述第三时间戳对应的第一
IO
条目

[0022]可选的,所述读取用户态中处于目标缓冲区的输入输出
IO
条目之后,还包括:
[0023]设置计数器记录所述
IO
条目的数量;
[0024]在检测到所述
IO
条目的数量大于第二阈值的情况下,触发自动清理机制

[0025]可选的,所述读取用户态中处于目标缓冲区的输入输出
IO
条目之前,还包括:
[0026]通过预设的静态探测点获取内核的目标
IO
信息;
[0027]将所述目标
IO
信息发送至用户态的目标缓冲区

[0028]可选的,所述通过预设的静态探测点获取内核的目标
IO
信息,包括:
[0029]遍历每一中央处理器
CPU
多个逻辑磁盘;
[0030]根据每一所述逻辑磁盘创建对应的线程;
[0031]按照预设的静态探测点获取所述线程对应的目标
IO
信息

[0032]在本专利技术实施的第二方面,还提供了一种读写
IO
监测装置,其特征在于,包括:
[0033]第一读取模块,用于读取用户态中处于目标缓冲区的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种读写
IO
监测方法,其特征在于,所述方法包括:读取用户态中处于目标缓冲区的输入输出
IO
条目,其中,所述
IO
条目包括
IO
事件
、IO
事件进程号
、IO
事件时间戳
、IO
事件类型
、IO
事件序号;根据所述
IO
事件时间戳获取所述
IO
事件序号相邻的
IO
条目间的第一时间;将所述
IO
条目和所述第一时间写入数据库,以使服务端读取所述数据库数据并进行展示
。2.
根据权利要求1所述的方法,其特征在于,所述读取用户态中处于目标缓冲区的输入输出
IO
条目之后,还包括:按照所述
IO
事件类型和所述
IO
事件序号,将所述
IO
条目插入目标双向链表;获取处于同一双向链表中相邻
IO
条目间的第二时间;在检测到所述第二时间大于第一阈值的情况下,获取所述相邻
IO
条目中时间较早的
IO
条目的第一时间戳;根据所述第一时间戳删除处于同一所述双向链表的第一
IO
条目
。3.
根据权利要求2所述的方法,其特征在于,所述按照所述
IO
事件类型和所述
IO
事件序号,将所述
IO
条目插入目标双向链表,包括:按照所述
IO
事件类型确定待插入的目标双向链表;按照所述
IO
事件序号确定所述
IO
条目在所述目标双向链表中的位置
。4.
根据权利要求2所述的方法,其特征在于,所述根据所述第一时间戳删除处于同一所述双向链表的第一
IO
条目,包括:获取处于同一所述双向链表中
IO
条目的第二时间戳;从所述第二时间戳中获取早于所述第一时间戳的第三时间戳;删除处于同一所述双向链表的所述第三时间戳对应的第一
IO
条目
。5.
根据权利要求1所述的...

【专利技术属性】
技术研发人员:宋凯窦志冲孙新鹏王凯强
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1